看了几位大吓的回复,深深地感觉到了这篇附笔中可能存在错误,于是把最初遇到此问题时的环境再模拟了一下,现在可以确认这篇附笔中的确存在问题,现在就修正一下,并对各位表示歉意. 6月初的一个项目中需要写一个高性能网络服务端程序,在网上找到了一份很好的代码(请参见),在使用过程中发现在多个cpp文件中引入这份代码的h文件时,会出现很多重复定义错误,当时很头疼,没能很好的解决问题. 现总结一条:在使用类模板技术时,可在.h中实现,也可在.h和.cpp中分开实现,若用.h实现,不要在文件中加入非类模板代码,可避免重写定义错误.. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 原文如下:Posted on 2009-07-25 15:10 sToa ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1.声明部分 //
#pragma template<class class { public: }; 2.实现部分 //
3.习惯错误用法#include template<class CTpl<T>::CTpl() { } template<class CTpl<T>::~CTpl() { } template<class void { } //
#include int { } build时出现link错误 //
#include int { } 5.总结 |
|