driver.cc
#include <iostream>
#include "dynStack.h"
using namespace std;
// class definition
int main()
{
dynstack<int> c1;
c1.push(1);
cout<<"hello";
return 0;
}
dynStack.h
#include <iostream>
using namespace std;
template <class T>
class dynstack
{
public:
dynstack();
void push(T data);
};
dynStack.cc
#include "dynStack.h"
template <class T>
dynstack<T>::dynstack()
{
}
template <class T>
void dynstack<T>::push(T data)
{
return data;
}
我是C ++的新手。当我运行代码时,它一直给我“未定义引用'dynstack :: dynstack()'错误。我检查了include和prototype并且无法发现错误。有人能帮我找到我做错的地方吗?谢谢。
答案 0 :(得分:4)
除非在同一个.cpp中调用,否则模板化的类方法需要在标题中包含它们的实现,或者从标题中包含内联文件。