Eri*_*rik 12
模板类不是类,它是可用于创建类的模板.例如MyTemplate<int>,当您实例化这样的类时,编译器会在现场创建类.为了创建它,它具有看到所有的模板的成员函数(因此,它可以使用模板来创建实际构件的功能,例如MyTemplate<int>::foo()),因此,这些模板的成员函数必须在头中.
如果成员不是在标题中,编译器会简单地认为它们的存在别的地方,刚刚从模板函数声明创建实际的函数声明,这给你链接错误.
"export"关键字应该可以解决这个问题,但很少有编译器支持它(我只知道Comeau).
您还可以显式实例化MyTemplate<int>- 然后编译器将MyTemplate<int>在编译包含MyTemplate成员函数定义模板的cpp文件时创建实际的成员函数.
| 归档时间: |
|
| 查看次数: |
6595 次 |
| 最近记录: |