所以这是我第一次使用标题,所以请保持温和......
我在头文件(base.h)中定义了一个基类,其成员函数在匹配的.cpp文件(base.cpp)中定义。我有另一个头文件与派生类(derived.h)和再次成员函数在其.cpp文件(derived.cpp)中定义。出于某种原因,链接器在derived.cpp中使用它们时无法找到任何基类函数。我搜索了很多但只能找到与外部标题有关的问题。我哪里错了?
base.h:
template <typename T> class base {
/*protected and public member functions and private data*/
protected:
base();
};
base.cpp:
#include "base.h"
template <typename T> base<T>::base() : /*initialise member data*/ {}
derived.h:
#include "base.h"
class derived : public base<double> {
/*public member functions*/
public:
derived();
}
derived.cpp:
#include "derived.h"
#include "base.h"
derived::derived() : base() {}
这给了我链接器错误,base<double>::base<double>(void)
是构建derived.obj时未解析的外部符号