成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ typename不同應用方式介紹

開發(fā) 后端
C++ typename的應用可以幫助我們來定義一個模板的參數(shù),我們可以應用它來幫助我們輕松的完成一些特定的概念。

C++編程語言中,有很多比較高深的內(nèi)容值得我們?nèi)ド钊氲奶接憽N覀兿葋砜纯雌渲幸粋€比較重要的概念C++ typename的應用方式。C++ typename總是用來定義一個模板參數(shù),在這個時候他和classname有相同的功效。#t#

可是,typename的作用并不限于此。試想,在模板參數(shù)的類型中有一個嵌套類,而在我們的模板中需要使用這個嵌套類。那么,可能的寫法為[T::SubType * ptr]。

問題是,T只是一個類型參數(shù),編譯器并不能確切的知道T中有哪些成員。因此,對于編譯器來說,更為合理的做法把SubType看成了一個T中的靜態(tài)成員,從而把上面的代碼理解為T中的靜態(tài)成員SubType乘上ptr。(我想,這與編譯器在模板實例化時的處理方式有關。我不知道編譯器在實例化模板的時候會按什么步驟走,但是肯定和普通的類實例化完全不一樣。因為按照正常的類的實例化過程,編譯器完全應該能知道SubType是T中的一個嵌套類。希望書中后面的內(nèi)容能提供解釋)。

這個時候C++ typename就能夠明確的告訴編譯器,SubType是一個類型,需要按照類型的方式處理。

下面是書中的一個實例:

  1. #include < iostream> 
  2. #include < vector> 
  3. template< typename T> 
  4. void printcoll(T const& coll)  
  5. {  
  6. typename T::const_iterator pos;  
  7. typename T::const_iterator end(coll.end());  
  8. for(pos = coll.begin(); pos != end; ++pos)  
  9. {  
  10. std::cout< < *pos< < ' ';  
  11. }  
  12. std::cout< < std::endl;  
  13. }  
  14. int _tmain(int argc, _TCHAR* argv[])  
  15. {  
  16. // 測試printcoll  
  17. std::vector< int> intVector;  
  18. intVector.push_back(1);  
  19. intVector.push_back(2);  
  20. intVector.push_back(3);  
  21. intVector.push_back(4);  
  22. printcoll(intVector);  
  23. return 0;  

注意到第7行和第8行,在定義變量的時候迭代器const_iterator是容器T中的一個類型。因此,在定義T::const_iterator的變量的時候需要在前面加上typename。可以說,正是由于const_iterator是一個依賴于模板參數(shù)的類型,所以我們必須使用C++ typename明確的指它是一個類型。否則,編譯器就不能正常識別。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-03 15:27:26

C++ static

2010-02-06 16:21:35

C++常規(guī)DLL

2010-02-04 10:33:40

C++異常傳遞

2010-02-06 14:12:54

C++繼承方式

2010-02-06 17:39:52

C++ strtok

2010-02-05 16:46:58

C++ TinyXml

2010-02-04 15:41:10

C++內(nèi)存管理

2010-02-04 16:39:26

C++析構(gòu)函數(shù)

2010-02-03 14:10:28

C++內(nèi)存邏輯區(qū)域

2010-01-25 14:56:08

C++程序

2010-02-04 10:13:35

C++獲得系統(tǒng)時間

2010-02-03 10:11:17

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

2010-02-04 13:39:44

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

2010-02-06 16:39:45

C++ assert(

2010-02-01 17:31:06

C++類成員

2010-02-05 10:46:10

C++文件流

2010-02-01 10:32:01

C++文件操作

2010-02-05 10:30:02

C++操作符重載

2010-02-05 14:36:20

C++智能指針

2010-02-03 16:29:19

C++ sizeof
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美第一页 | 国产精品中文字幕一区二区三区 | 精品国产一区二区在线 | 久久婷婷国产麻豆91 | 91精品国产91久久久久久不卞 | 亚洲一区二区在线播放 | 日本一区二区不卡 | 天堂av在线影院 | 亚洲精品日本 | 欧美狠狠操 | 国产欧美日韩精品在线观看 | 亚洲女人天堂成人av在线 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 成人精品一区二区三区中文字幕 | ww 255hh 在线观看 | 中文字幕亚洲一区二区三区 | 亚洲成人在线视频播放 | av一级久久 | 欧美一区二区网站 | 97久久精品午夜一区二区 | 成人国产午夜在线观看 | 成人中文字幕在线观看 | 国产1区2区在线观看 | 国产精品一区二区视频 | 狠狠av| 国产91成人 | 欧美中文字幕在线观看 | 久草精品视频 | 国产馆 | 日本在线网站 | 黄a网站| 免费看色 | 欧美在线视频一区二区 | 日本高清在线一区 | 国产一级在线 | 久久国产婷婷国产香蕉 | 久久99精品久久久水蜜桃 | 国产婷婷色综合av蜜臀av | 成人在线视 | 色就是色欧美 | 国产精品亚洲综合 |