为什么我要继续这个"未定义的参考"错误?

时间:2014-05-07 00:53:24

标签: c++

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并且无法发现错误。有人能帮我找到我做错的地方吗?谢谢。

1 个答案:

答案 0 :(得分:4)

除非在同一个.cpp中调用,否则模板化的类方法需要在标题中包含它们的实现,或者从标题中包含内联文件。