日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++typename不同應(yīng)用方式介紹

在C++編程語言中,有很多比較高深的內(nèi)容值得我們?nèi)ド钊氲奶接?。我們先來看看其中一個比較重要的概念C++ typename的應(yīng)用方式。C++ typename總是用來定義一個模板參數(shù),在這個時候他和classname有相同的功效。#t#

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、榮縣網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、榮縣網(wǎng)絡(luò)營銷、榮縣企業(yè)策劃、榮縣品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供榮縣建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com

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

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

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

下面是書中的一個實(shí)例:

 
 
 
  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明確的指它是一個類型。否則,編譯器就不能正常識別。


當(dāng)前標(biāo)題:C++typename不同應(yīng)用方式介紹
鏈接URL:http://www.5511xx.com/article/djohhhh.html