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 < typename T> class abstract { public : abstract( const T& type); virtual ~abstract(); const T& type() const { return m_iType; } protected : virtual void parser() = 0; private : T m_iType; }; |
abstract.cpp文件
1
2
3
4
5
6
7
8
9
10
11
|
template < typename T> abstract<T>::abstract( const T &type, QObject *parent) :QObject(parent), m_iType(type) { } template < typename T> 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" class derive : public abstract<std::string> { public : derive( const std::string& type, QObject *parent = 0) :abstract<std::string>(type, parent) { } ~derive() {} protected : void parser() {} }; |
我的实现如果写在.h里,那么是可以编译通过的;
但是如果我把定义和实现分离,按常见的C++写法放到CPP文件里,链接的时候就会报错,说无法链接到derive的构造和析构函数,而且还构造函数错误报了3个,析构报了两个……
百思不得其解,求解答……