为什么我的链接器没有工作 - Visual Studio 2017

时间:2018-04-14 11:23:51

标签: c++ linker visual-studio-2017

所以这是我第一次使用标题,所以请保持温和......

我在头文件(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时未解析的外部符号

0 个答案:

没有答案