c++模板学习

http://hi.csdn.net/link.php?url=http://topic.csdn.net%2Fu%2F20091106%2F09%2F36be1c18-1f21-4afa-99d5-32008d079a42.html

问题帖子

 

C++模板类的分离模式     

一般类的定义和实现组织方式:将定义放在.h文件中,实现放在.cpp文件中。     

C++中的模板是C++在发展过程中新添的新生力量,template的声明和实现不同于一般的类定义与实现和函数的声明与定义,故在含有模板的C++程序的组织方式就不同于一般的定义与实现相分离的方式。      我曾经遇到的问题:  当在GUN中编译时老是无法通过,错误信息大概是无法找到函数。然后将程序搬到VC6下编译,同样出现连接错误。   

  问题原因:      C++标准中说明:在使用模板时C++支持两种程序组织方式:包含模式与分离模式。包含模式也就是将类的定义与实现同放在.h 文件中,分离模式也就是将定义与实现分离,也就是我采用的方式。但很多编译器不支持分离模式,只支持包含模式。   

通常采用的解决方法:    1. 干脆直接使用包含模式,即将模板类的定义与实现同写在.h文件中。(我不太喜欢这种写法)    2. 使用分离模式,但是在使用时不引用模板类的头文件,而是引用模板类的实现文件。(#include "xxx.cpp")(不太符合一般习惯

posted on 2009-11-06 09:52  峰回路转 柳暗花明  阅读(247)  评论(0)    收藏  举报

导航