模板是否只能写在头文件中,没办法写在cpp中或者生成库
RT
[解决办法]
是的。
[解决办法]
恩,是的,目前好像所有的编译器都不支持分离编译,所以都必须写在同一文件即。h中
[解决办法]
据说,只有一种编译器(大概叫EDG)实现了分离编译。
据说,即使这种实现也不能生成库,必须有cpp。
据说,实现分离编译需要3个人年的工作量。
但是,可以用显示实例化的方法。
你可以将模版实现写在cpp中,并在这个cpp里用显示实例化:
template class temp_name <type> ;
// 设模版为 template <typename T> class temp_name { ... }
// 并且需要使用 temp_name <type>
// 函数也一样,只要把template后面的 <typename T> 整个去掉,并在temp_name后加上要实例化的
// 类型 <type> ,将类名或函数原型申明一下就可以了。
这样,只要这个程序中用到的实例都在该cpp中实例化了,那么h中就不需要包含模版实现了。