自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++模板限制實際應用方式探討

開發(fā) 后端
我們今天為大家詳細介紹的是C++模板限制的一些比較重要的知識點。希望大家可以通過對本文內容的解讀充分掌握這方面的知識。

C++編程語言中的模板應用是一個非常重要的操作技巧。它的應用在很大程度上提高了編程人員程序開發(fā)效率。在這篇文章中,我們將會重點介紹一下有關C++模板限制的相關應用,方便大家理解。

1、浮點數(shù)不能作為 非類型模板參數(shù) 如:template <float /* or double */> class TT;

2、自定義類不能作為模板參數(shù),這些自定義類也是 非類型模板參數(shù)。

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

C++模板限制中還有一個,而且相當重要:

模板類或模板函數(shù)的聲明與定義必須位于同一個文件中!除非新一代的編譯器支持關鍵字export.

如果編譯器不支持export關鍵字,但我們又想把聲明與定義分開寫,那該如何操作呢?方法如下:

把模板聲明寫在.h中,模板定義寫在.cpp中,需要注意的是,我們并不像一般的文件包含那樣,在.cpp中包含.h,而是在main.cpp中,把這兩個東東包含進來如:

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

以上就是對C++模板限制的相關介紹。

【編輯推薦】

  1. C++字符串分割函數(shù)具體使用方法總結
  2. C++異常傳遞三種不同方式介紹
  3. C++多線程代碼范例剖析
  4. C++獲得系統(tǒng)時間不同方案介紹
  5. C++靜態(tài)成員函數(shù)基本概念講解
責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-03 10:11:17

C++動態(tài)數(shù)組

2010-02-04 13:39:44

C++數(shù)組參數(shù)

2010-02-03 16:29:19

C++ sizeof

2010-02-06 17:09:29

C++文件拷貝

2010-02-01 17:09:07

C++鏈表操作

2010-02-06 17:39:52

C++ strtok

2010-02-05 16:46:58

C++ TinyXml

2010-03-26 16:17:24

Python嵌入

2010-02-06 16:21:35

C++常規(guī)DLL

2010-02-04 14:29:45

C++ typenam

2010-02-06 16:39:45

C++ assert(

2010-02-03 15:27:26

C++ static

2010-02-05 17:58:32

C++鏈棧模板

2010-02-04 13:45:36

C++類模板

2011-04-11 09:47:50

C++內存管理

2010-02-02 13:20:33

C++對象傳遞

2010-02-03 10:50:33

C++多態(tài)

2009-11-06 14:26:42

無線局域網

2011-05-23 09:59:04

網絡綜合布線系統(tǒng)布線

2010-02-05 14:36:20

C++智能指針
點贊
收藏

51CTO技術棧公眾號