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

深度剖析C++中的C++類型

開發 后端
也許大家對與C++類型還不是很了解,看完本文后對您一定會大有幫助,下文除了學習C++的基本性質外還對C++類型的進行全面研究。

在C++中,C++類模板不能直接使用,必須先實例化為相應的模板類,定義模板類的對象后,才可使用,可以用以下方式創建類模板的實例,下面進行學習探討,希望大家能夠喜歡。

模板(template)利用一種完全通用的方法來設計函數或類而不必預先說明將被使用的每個對象的類型,利用模板功能可以構造相關的函數或類的系列。因此模板也可稱為參數化的類型。在C++類型中,模板可分為類模板(class template)和函數模板(function template)。

在程序中說明了一個函數模板后,編譯系統發現有一個相應的函數調用時,將根據實參中的類型來確認是否匹配函數模板中對應的形參。然后生成一個重載函數。該重載函數的定義體與函數模板的函數定義體相同,稱之為模板函數(template function)。

函數模板與模板函數的區別是:函數模板是模板的定義,定義中用到通用類型參數。模版函數是實實在在的函數定義,它由編譯系統在遇到具體函數調用時所產生,具有程序代碼。

同樣,在說明了一個類模板之后,可以創建類模板的實例,即生成模板類。類模板與摸板類的區別是:類模板是模板的定義。不是一個實實在在的類,定義中用到通用類型參數;模板類是實實在在的類定義,是類模板的實例。

1.函數模板

通過前面知識的學習可知,在所定義的函數中,函數形參的類型是固定的,當調用函數時,實參的類型要與被調函數的形參類型保持一致,否則會出現類型不一致的錯誤。因此,對于功能相同而只是參數的類型不同的情況,也必須定義不同的函數來分別完成相應的功能,這顯然是很不靈活的。

C++語言中提供的函數模板功能就是為解決以上問題而提出的。C++類型提供的函數模板可以定義一個對任何類型變量都可進行操作的函數,從而大大增強了函數設計的通用性。

因為普通函數只能傳遞變量參數,而函數模板卻提供了傳遞類型的機制在上面的定義形式中,<參數形參表>可以有一到若干個形參,各形參前必須加上class關鍵字,表示傳遞類型,當有多個形參時,各形參間用逗號分隔。

從中可以看出,<類型形參表>中的每個形參就表示了一種數據類型。“形參表”中至少有一個形參的類型必須用<類型形參表>中的形參來定義。函數模板只是說明,不能直接執行,需要實例化為模板函數后才能執行。當編譯系統發現有一個函數調用:函數名(實參表);

將根據“實參表”中的實參的類型和已定義的函數模板生成一個重載函數即模板函數。該模板函數的定義體與函數模板的定義體相同,而“形參表”中的類型則以“實參表”中的實際類型為依據。

2.類模板
<C++類型形參表>中可以包括一到若干個形參,這些形參既可以是“類型形參”,也可以是“表達式形參”。每個類型形參前必須加class關鍵字,表示對類模板進行實例化時代表某種數據類型。

也就是說,C++類型形參是在類模板實例化時傳遞數據類型用的;表達式形參的類型是某種具體的數據類型,當對類模板進行實例化時,給這些參數提供的是具體的數據,也就是說,表達式形參是用來傳遞具體數據的。當<類型形參表>中的參數有多個時,需用逗號隔開。如:

  1. template <class arg1,int arg2,class arg3> 
  2.  
  3.     class myclass  
  4.  
  5.     {  
  6.  
  7.     //類的定義體  
  8.  
  9.     };  

【編輯推薦】

  1. C與C++中標準輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: javaeye.com
相關推薦

2010-01-15 10:32:21

C++語言

2010-01-26 14:46:42

C++語言

2010-01-28 13:45:06

C++數組

2010-01-14 17:42:47

CC++

2010-01-20 09:54:27

C++數據類型

2010-01-26 17:16:33

C++應用程序

2010-01-28 14:54:01

C++資源管理

2010-01-27 15:50:23

C++復雜性

2010-01-13 10:16:42

C++軟件

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-11 10:19:57

C++開發工具

2010-01-21 14:07:14

CC++聲明

2010-01-11 17:43:23

C++程序設計

2010-01-13 11:14:06

C++虛表

2010-01-20 10:19:55

C++數組

2010-01-25 10:25:19

C++變量

2010-01-27 17:16:52

C++構造函數

2010-01-21 13:33:44

C++基類

2020-08-21 13:20:36

C++If ElseLinux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲天堂男人的天堂 | 免费观看日韩av | 日日干干 | 精品三区 | 久久久久国产一区二区三区 | 久久久久国产精品一区 | 欧美视频一区二区三区 | 中文字幕爱爱视频 | 亚洲精品久久久久avwww潮水 | 日日操日日干 | 北条麻妃99精品青青久久主播 | 亚洲视频一区在线 | 色婷婷国产精品 | 99精品一区二区 | 久久久精品在线 | 国产成人高清 | 成人小视频在线观看 | av三级 | 日日碰狠狠躁久久躁婷婷 | 欧美第一区 | 欧美一区二 | 亚洲一区二区在线视频 | 四虎永久在线精品免费一区二 | www.一区二区三区 | 欧美精品在线看 | 欧美日韩亚洲视频 | 成人高清在线视频 | 国产99久久精品一区二区永久免费 | 精品亚洲一区二区三区 | 国产成人久久精品 | 99re热精品视频国产免费 | 亚洲精品福利在线 | 亚洲日本激情 | 免费视频久久 | 亚洲欧美成人在线 | 精品国产欧美一区二区三区成人 | 日本一本视频 | 天天天天天天操 | 97国产精品视频 | 国产精品久久久 | 中文字幕99|