C++模板限制实际应用方式探讨

C++编程语言中的模板应用是一个非常重要的操作技巧。它的应用在很大程度上提高了编程人员程序开发效率。在这篇文章中,我们将会重点介绍一下有关C++模板限制的相关应用,方便大家理解。

1、浮点数不能作为 非类型模板参数 如:template class TT;

2、自定义类不能作为模板参数,这些自定义类也是 非类型模板参数。

 
 
 
  1. // 6-14-2009  
  2. #include  
  3. using namespace std;  
  4. // #define FLOAT  
  5. // #define TEMPLATE_OBJECT  
  6. #define COMMON_OBJECT  
  7. #ifdef FLOAT  
  8. template  
  9. class TT;  
  10. #endif  
  11. #ifdef TEMPLATE_OBJECT  
  12. template < class T > 
  13. class TM {};  
  14. template < TM c > 
  15. class TT;  
  16. #endif  
  17. #ifdef COMMON_OBJECT  
  18. class TN{};  
  19. template < TN c > 
  20. class TT;  
  21. #endif 

C++模板限制中还有一个,而且相当重要:

模板类或模板函数的声明与定义必须位于同一个文件中!除非新一代的编译器支持关键字export.

如果编译器不支持export关键字,但我们又想把声明与定义分开写,那该如何操作呢?方法如下:

把模板声明写在.h中,模板定义写在.cpp中,需要注意的是,我们并不像一般的文件包含那样,在.cpp中包含.h,而是在main.cpp中,把这两个东东包含进来如:

 
 
 
  1. // test.h  
  2. template  
  3. class Test  
  4. {  
  5. public:  
  6. void print();  
  7. };  
  8. // test.cpp  
  9. template  
  10. void Test::print()  
  11. {  
  12. cout << "Successfully!" << endl;  
  13. }  
  14. // main.cpp  
  15. #include  
  16. using namespace std;  
  17. #include "test.h"  
  18. #include "test.cpp"  
  19. int main()  
  20. {  
  21. Test t;  
  22. t.print();  
  23. return 0;  

以上就是对C++模板限制的相关介绍。

【编辑推荐】

  1. C++字符串分割函数具体使用方法总结
  2. C++异常传递三种不同方式介绍
  3. C++多线程代码范例剖析
  4. C++获得系统时间不同方案介绍
  5. C++静态成员函数基本概念讲解

本文名称:C++模板限制实际应用方式探讨
转载来源:http://www.shufengxianlan.com/qtweb/news16/431166.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联