Stack是一个带有向量m_elem的模板类。矢量类型也是模板。所以在main中我试图将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&)
有人可以帮助我。提前感谢你。
答案 0 :(得分:2)
您需要将模板的实现放在头文件中,因为它们需要内联。