对 Stack<int>::p ush(int const&) 的未定义引用

undefined reference to Stack<int>::push(int const&)

本文关键字:int const 未定义 引用 ush Stack gt lt      更新时间:2023-10-16

Stack是一个带有向量m_elem的模板类。矢量类型也是模板。所以,我主要是想把一个int推到向量中,但它显示了未定义的引用。不知道这是怎么回事。程序如下。

主文件

int main()
{   
    Stack<int> intStack;
    intStack.push(7);
    return EXIT_SUCCESS;
}

.h文件

template<class T>
class Stack
{
    public:
        void push(T const& elem);
    protected:
    private:
        vector<T> m_elem;
};

.cpp文件

template<class T>
void Stack<T>::push(T const& elem)
{
    m_elem.push_back(elem);
}

错误显示为

undefined reference to Stack<int>::push(int const&)

有人能帮我吗?提前谢谢你。

您需要将模板的实现放在头文件中,因为它们需要内联。