问题遇到的现象和发生背景


问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

#include <iostream>
template<class T>
class Stack
{
public:
Stack(unsigned int size = 100)
{
this->size = size;
data = new T[size];
sp = 0;
}
~Stack()
{
delete [] data;
}
void push(T value)
{
data[sp++] = value;
}
T pop()
{
return data[--sp];
}
protected:
unsigned int size;
unsigned int sp;
T *data;
};
int main()
{
Stack<int> instack(100);
instack.push(1);
instack.push(2);
instack.push(3);
std::cout << instack.pop() << "\n";
std::cout << instack.pop() << "\n";
std::cout << instack.pop() << "\n";
return 0;
}