程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++類模板應用代碼深入剖析

C++類模板應用代碼深入剖析

編輯:C++入門知識

C++中有類繼承的概念,意思就是能夠實現與繼承相同功能的一種應用。那麼什麼又是C++類模板呢?它是否也和類函數的用法相似呢?首先讓我們通過以下這段代碼來為大家詳細介紹一下C++類模板的應用方式。

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;  

  • C++字符串分割函數具體使用方法總結
  • C++模板限制實際應用方式探討
  • C++反射機制具體實現方法詳解
  • C++獲取當前路徑實現技巧分享
  • C++數組參數應用方式探討
在這段C++類模板的代碼中,語句[Stack< int> intStack;]展示了類模板的實例化,並定義一個變量的過程。和函數模板的實例化一樣,類模板的實例化也必須提供所需參數的類型。實例化後定義的變量可以和普通變量一樣的調用類模板定義的成員函數。只是需要注意,對於類模板的成員函數,只有在被調用的時候才會被實例化。對於上面的intStack,由於只調用了push()成員函數,所以它只實例化了push成員函數構造和析夠函數除外,他們會被默認的調用)。

這樣作有兩個好處:

一是可以節約空間和時間。

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

以上就是我們對C++類模板的相關應用介紹。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved