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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
深度剖析C++中的C++類型

在C++中,C++類模板不能直接使用,必須先實(shí)例化為相應(yīng)的模板類,定義模板類的對(duì)象后,才可使用,可以用以下方式創(chuàng)建類模板的實(shí)例,下面進(jìn)行學(xué)習(xí)探討,希望大家能夠喜歡。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的永泰網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

模板(template)利用一種完全通用的方法來(lái)設(shè)計(jì)函數(shù)或類而不必預(yù)先說(shuō)明將被使用的每個(gè)對(duì)象的類型,利用模板功能可以構(gòu)造相關(guān)的函數(shù)或類的系列。因此模板也可稱為參數(shù)化的類型。在C++類型中,模板可分為類模板(class template)和函數(shù)模板(function template)。

在程序中說(shuō)明了一個(gè)函數(shù)模板后,編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)相應(yīng)的函數(shù)調(diào)用時(shí),將根據(jù)實(shí)參中的類型來(lái)確認(rèn)是否匹配函數(shù)模板中對(duì)應(yīng)的形參。然后生成一個(gè)重載函數(shù)。該重載函數(shù)的定義體與函數(shù)模板的函數(shù)定義體相同,稱之為模板函數(shù)(template function)。

函數(shù)模板與模板函數(shù)的區(qū)別是:函數(shù)模板是模板的定義,定義中用到通用類型參數(shù)。模版函數(shù)是實(shí)實(shí)在在的函數(shù)定義,它由編譯系統(tǒng)在遇到具體函數(shù)調(diào)用時(shí)所產(chǎn)生,具有程序代碼。

同樣,在說(shuō)明了一個(gè)類模板之后,可以創(chuàng)建類模板的實(shí)例,即生成模板類。類模板與摸板類的區(qū)別是:類模板是模板的定義。不是一個(gè)實(shí)實(shí)在在的類,定義中用到通用類型參數(shù);模板類是實(shí)實(shí)在在的類定義,是類模板的實(shí)例。

1.函數(shù)模板

通過(guò)前面知識(shí)的學(xué)習(xí)可知,在所定義的函數(shù)中,函數(shù)形參的類型是固定的,當(dāng)調(diào)用函數(shù)時(shí),實(shí)參的類型要與被調(diào)函數(shù)的形參類型保持一致,否則會(huì)出現(xiàn)類型不一致的錯(cuò)誤。因此,對(duì)于功能相同而只是參數(shù)的類型不同的情況,也必須定義不同的函數(shù)來(lái)分別完成相應(yīng)的功能,這顯然是很不靈活的。

C++語(yǔ)言中提供的函數(shù)模板功能就是為解決以上問(wèn)題而提出的。C++類型提供的函數(shù)模板可以定義一個(gè)對(duì)任何類型變量都可進(jìn)行操作的函數(shù),從而大大增強(qiáng)了函數(shù)設(shè)計(jì)的通用性。

因?yàn)槠胀ê瘮?shù)只能傳遞變量參數(shù),而函數(shù)模板卻提供了傳遞類型的機(jī)制在上面的定義形式中,<參數(shù)形參表>可以有一到若干個(gè)形參,各形參前必須加上class關(guān)鍵字,表示傳遞類型,當(dāng)有多個(gè)形參時(shí),各形參間用逗號(hào)分隔。

從中可以看出,<類型形參表>中的每個(gè)形參就表示了一種數(shù)據(jù)類型?!靶螀⒈怼敝兄辽儆幸粋€(gè)形參的類型必須用<類型形參表>中的形參來(lái)定義。函數(shù)模板只是說(shuō)明,不能直接執(zhí)行,需要實(shí)例化為模板函數(shù)后才能執(zhí)行。當(dāng)編譯系統(tǒng)發(fā)現(xiàn)有一個(gè)函數(shù)調(diào)用:函數(shù)名(實(shí)參表);

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

2.類模板
中可以包括一到若干個(gè)形參,這些形參既可以是“類型形參”,也可以是“表達(dá)式形參”。每個(gè)類型形參前必須加class關(guān)鍵字,表示對(duì)類模板進(jìn)行實(shí)例化時(shí)代表某種數(shù)據(jù)類型。

也就是說(shuō),C++類型形參是在類模板實(shí)例化時(shí)傳遞數(shù)據(jù)類型用的;表達(dá)式形參的類型是某種具體的數(shù)據(jù)類型,當(dāng)對(duì)類模板進(jìn)行實(shí)例化時(shí),給這些參數(shù)提供的是具體的數(shù)據(jù),也就是說(shuō),表達(dá)式形參是用來(lái)傳遞具體數(shù)據(jù)的。當(dāng)<類型形參表>中的參數(shù)有多個(gè)時(shí),需用逗號(hào)隔開(kāi)。如:

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

【編輯推薦】

  1. C與C++中標(biāo)準(zhǔn)輸入實(shí)現(xiàn)方式上的一點(diǎn)區(qū)別
  2. C++編譯器如何對(duì)Const常量進(jìn)行分配存儲(chǔ)空間
  3. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語(yǔ)言的幾種方法
  5. 如何更好的進(jìn)行C++代碼編制

當(dāng)前名稱:深度剖析C++中的C++類型
本文URL:http://www.5511xx.com/article/dhgihhe.html