c++类里面写的方法,在主函数里面创建对象,说对象没有这个函数

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

img

img

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

img


#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;
}