日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++類模板應(yīng)用代碼深入剖析

C++中有類繼承的概念,意思就是能夠?qū)崿F(xiàn)與繼承相同功能的一種應(yīng)用。那么什么又是C++類模板呢?它是否也和類函數(shù)的用法相似呢?首先讓我們通過以下這段代碼來為大家詳細介紹一下C++類模板的應(yīng)用方式。

成都創(chuàng)新互聯(lián)主營鄂爾多斯網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),鄂爾多斯h5成都微信小程序搭建,鄂爾多斯網(wǎng)站營銷推廣歡迎鄂爾多斯等地區(qū)企業(yè)咨詢

C++類模板代碼示例:

 
 
 
  1. #include "stdafx.h"  
  2. #include "Stack.h"  
  3. #include < iostream> 
  4. #include < string> 
  5. #include < cstdlib> 
  6. #include < stdexcept> 
  7. int _tmain(int argc, _TCHAR* argv[])  
  8. {  
  9. try  
  10. {  
  11. Stack< int> intStack;  
  12. Stack< std::string> stringStack;  
  13. intStack.push(7);  
  14. std::cout< < "intStack.top() = >"< < intStack.top()
    < < std::endl;  
  15. stringStack.push("Hello!");  
  16. std::cout< < "stringStack.top() = >"< < stringStack.top()
    < < std::endl;  
  17. stringStack.pop();  
  18. stringStack.pop();  
  19. }  
  20. catch(std::exception const& ex)  
  21. {  
  22. std::cerr< < "Exception: "< < ex.what()< < std::endl;  
  23. return EXIT_FAILURE;  
  24. }  
  25. return 0;  

#t#在這段C++類模板的代碼中,語句[Stack< int> intStack;]展示了類模板的實例化,并定義一個變量的過程。和函數(shù)模板的實例化一樣,類模板的實例化也必須提供所需參數(shù)的類型。實例化后定義的變量可以和普通變量一樣的調(diào)用類模板定義的成員函數(shù)。只是需要注意,對于類模板的成員函數(shù),只有在被調(diào)用的時候才會被實例化。對于上面的intStack,由于只調(diào)用了push()成員函數(shù),所以它只實例化了push成員函數(shù)(構(gòu)造和析夠函數(shù)除外,他們會被默認(rèn)的調(diào)用)。

這樣作有兩個好處:

一是可以節(jié)約空間和時間。

二是,對于每一個類模板的參數(shù)類型,都要求提供模板所需要的操作。比如,如果你用自定義的類MyClass作為一個類模板Caculator< T>的參數(shù)。由于Caculator類模板要求提供的參數(shù)類型支持“+”和"-"操作。但是,你的MyClass類只需要用到“+”操作,沒有提供"-"操作。得益于上面的規(guī)則,你的MyClass類型還是可以作為Caulator< T>的參數(shù)。前提是你沒有用到"-"相關(guān)的成員函數(shù)。

以上就是我們對C++類模板的相關(guān)應(yīng)用介紹。


文章標(biāo)題:C++類模板應(yīng)用代碼深入剖析
文章分享:http://www.dlmjj.cn/article/cdsjcdp.html