悬雍垂肥大打鼾:C++模板类的文件组织:包含模式与分离模式
来源:百度文库 编辑:偶看新闻 时间:2024/04/30 02:41:51
C++模板类的分离模式
一般类的定义和实现组织方式:将定义放在.h文件中,实现放在.cpp文件中。
C++中的模板是C++在发展过程中新添的新生力量,template的声明和实现不同于一般的类定义与实现和函数的声明与定义,故在含有模板的C++程序的组织方式就不同于一般的定义与实现相分离的方式。
我曾经遇到的问题:
1. 当在GUN中编译时老是无法通过,错误信息大概是无法找到函数。然后将程序搬到VC6下编译,同样出现连接错误。
2. 将类的定义放在一个头文件中,而类的实现在另一个.cpp文件里,程序代码(main函数)放在单独的一个.cpp文件下,在vc2008下编译会出现如类的某某函数被重新定义之类的错误。
问题原因:
C++标准中说明:在使用模板时C++支持两种程序组织方式:包含模式与分离模式。包含模式也就是将类的定义与实现同放在.h 文件中,分离模式也就是将定义与实现分离,也就是我采用的方式。但很多编译器不支持分离模式,只支持包含模式。
通常采用的解决方法:
2. 使用分离模式,但是在使用时不引用模板类的头文件,而是引用模板类的实现文件。(不太符合一般习惯)
3. 使用分离模式,在模板类头文件中引用实现文件。(这个方法我在VC6和Dev C++下都没有成功,不知道是哪里出了问题)
4. 使用分离模式,在模板类中头文件中实例化一个你需要对象。(十分笨拙的方法,不利于使用)
5. 使用分离模式,但是另外定义.h文件,在这个文件中引用模板的头文件和实现文件,在使用时引用这个另外定义的.h文件。(觉得这个方法还不错,不过也不知道有什么缺点)
凌阳系列单片机的文件组织
固氮菌的分离与鉴定
微生物的分离与纯化
三价铬与六价铬的分离
与家人分离的诗词
linux下C开发中的包含文件与库文件的区别是什么?
模版与的模板区别
c/s模式与b/s模式的问题
一个C程序,包含以下的说明
票据关系与原因关系的分离
音频与视频分离的MP4
植物中的元素的分离与鉴定
分离式立交桥与高架桥的区别
发根农杆菌的分离与鉴定
传质与分离工程是干什么的?
管理权与股权分离的弊端
Windows系统中,文件组织的目录结构采用的是
Windows系统中,文件组织的目录结构采用的是
如何把包含在播放器里的FLASH中分离出来?
动易的前台页面设计(模板)和程序完全分离是什么意思?
对于3个集合,A,B,C,条件:A包含于B,B包含于C;则C包含于A是A=B=C的
网页框架与模板的异同点?
当一个C类网络包含15个实际子网,那它的子网掩码为多少
在安全模式C盘的剩余空间与正常启动时的不一致,怎么回事?