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个,析构报了两个……
百思不得其解,求解答……

浙公网安备 33010602011771号