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

C++類模板應(yīng)用代碼深入剖析

開發(fā) 后端
C++類模板的正確應(yīng)用方式將會(huì)在這篇文章中通過一段代碼的編寫為大家呈現(xiàn)。希望大家可以從中學(xué)到一些知識(shí),并提高自己的開發(fā)效率。

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

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í)例化,并定義一個(gè)變量的過程。和函數(shù)模板的實(shí)例化一樣,類模板的實(shí)例化也必須提供所需參數(shù)的類型。實(shí)例化后定義的變量可以和普通變量一樣的調(diào)用類模板定義的成員函數(shù)。只是需要注意,對(duì)于類模板的成員函數(shù),只有在被調(diào)用的時(shí)候才會(huì)被實(shí)例化。對(duì)于上面的intStack,由于只調(diào)用了push()成員函數(shù),所以它只實(shí)例化了push成員函數(shù)(構(gòu)造和析夠函數(shù)除外,他們會(huì)被默認(rèn)的調(diào)用)。

這樣作有兩個(gè)好處:

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

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

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

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2010-02-06 16:05:51

C++ Vector

2009-09-02 18:14:33

C# WebClien

2010-02-05 17:58:32

C++鏈棧模板

2010-02-04 10:19:39

C++多線程

2010-02-06 16:39:45

C++ assert(

2010-02-03 10:05:48

C++ enum枚舉

2023-12-06 13:48:00

C++代碼

2010-02-06 16:59:19

C++ kmp算法模板

2010-01-26 17:16:33

C++應(yīng)用程序

2010-01-14 17:42:47

CC++

2010-01-26 17:53:30

Android代碼結(jié)構(gòu)

2010-06-28 16:54:49

UML類圖關(guān)系

2010-02-04 11:15:28

C++模板限制

2010-02-04 13:56:24

C++類模板特化

2010-01-28 16:31:54

C++類型

2009-09-11 11:09:36

C#引用類型

2010-01-12 15:03:33

C++代碼

2011-03-29 14:31:41

CC++

2010-06-29 12:55:44

UML類圖依賴關(guān)系

2024-01-22 00:10:00

C++接口編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)