c++模板类的 虚函数找不到符号
http://bbs.csdn.net/topics/390800051
代码如下,abstract.h文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | template<typenameT>classabstract{public:    abstract(constT& type);    virtual~abstract();    constT& type() const    { returnm_iType; }protected:    virtualvoidparser() = 0;private:    T m_iType;}; | 
abstract.cpp文件
| 1 2 3 4 5 6 7 8 9 10 11 | template<typenameT>abstract<T>::abstract(constT &type, QObject *parent)    :QObject(parent),     m_iType(type){}template<typenameT>abstract<T>::~abstract(){} | 
这个用于继承的类没问题,然后下面我派生了一个类
derive.h文件
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include "abstract.h"classderive    :publicabstract<std::string>{public:    derive(conststd::string& type, QObject *parent = 0)        :abstract<std::string>(type, parent)    {    }    ~derive()    {}protected:    voidparser()    {}}; | 
我的实现如果写在.h里,那么是可以编译通过的;
但是如果我把定义和实现分离,按常见的C++写法放到CPP文件里,链接的时候就会报错,说无法链接到derive的构造和析构函数,而且还构造函数错误报了3个,析构报了两个……
百思不得其解,求解答……
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号