读书人

模板种中的函数实现为什么找不到

发布时间: 2012-07-28 12:25:13 作者: rapoo

模板类中的函数实现为什么找不到
各位大虾,小女看到的模板类中函数只有在.h文件中声明,找不到模板函数的实现,这是为什么?

[解决办法]
因为模板不能分离编译。google刘未鹏的"为什么c++编译器不支持模板的分离编译"
[解决办法]
模板是不允许分离编译的,模板函数和定义要在同一个文件中
[解决办法]
好好找找,一定有的
[解决办法]
如果真的是这样,多半是故意阻止你用的。比如说某个类不允许拷贝:

template < int v >
class A
{
public:
...

private:
A(const A &);
A & operator = (const A &);
};
最下面两个函数故意不给实现(其实给不给都没什么用),这样当你写出这样的代码:
A<1> o1, o2;

...
o1 = o2; // 这里编译不让过。
编译就通不过的,从而防止你这样用。

读书人网 >C++

热点推荐