欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c++模板-創(chuàng)新互聯(lián)

文章目錄
  • 前言
  • 一、函數(shù)模板1
  • 二、類(lèi)模板
  • 總結(jié)

成都創(chuàng)新互聯(lián)公司專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、成都做網(wǎng)站、中陽(yáng)網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、中陽(yáng)網(wǎng)絡(luò)營(yíng)銷(xiāo)、中陽(yáng)企業(yè)策劃、中陽(yáng)品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供中陽(yáng)建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):18980820575,官方網(wǎng)址:chinadenli.net
前言

模板就是實(shí)現(xiàn)代碼重用機(jī)制的一種工具,它可以實(shí)現(xiàn)類(lèi)型參數(shù)化,即把類(lèi)型定義為參數(shù), 從而實(shí)現(xiàn)了真正的代碼可重用性。模版可以分為兩類(lèi),一個(gè)是函數(shù)模版,另外一個(gè)是類(lèi)模版。

一、函數(shù)模板

函數(shù)的重載可以實(shí)現(xiàn)一個(gè)函數(shù)名多用,將是實(shí)現(xiàn)相同或類(lèi)似功能的函數(shù)用一個(gè)函數(shù)名定義,雖然含義清楚,但仍要分別定義每一個(gè)函數(shù),為此,c++提供函數(shù)模板。建立一個(gè)通用函數(shù),其函數(shù)類(lèi)型和形參類(lèi)型不具體指定,用一個(gè)虛擬的類(lèi)型來(lái)代表,這個(gè)通用函數(shù)就是函數(shù)模板。

#includeusing namespace stdl
template//模板聲明,T為類(lèi)型參數(shù)
T max(T a,T b,T c)
{
    if(b>a)  a=b;
    if(c>a)  a=c;
    return a;
}
int main()
{
    int i1=185, i2=-76, i3=5678,i;
    double d1=5.11, d2=231.12, d3=-3214.78,d;
    long g1=67854,g2=-912456,g3=673456,g;
    i=max(i1,i2,i3);//調(diào)用模板函數(shù),T被int取代
    d=max(d1,d2,d3);
    g=max(g1,g2,g3);
    cout<

上面就是一個(gè)簡(jiǎn)單的模板函數(shù)。

不難看出,定義函數(shù)模板的一般形式為:

template函數(shù)定義

此外,typename可換成class。

template的含義即是模板,<>中先寫(xiě)關(guān)鍵字typename(或class),后面跟一個(gè)類(lèi)型參數(shù)T,T是一個(gè)虛擬的類(lèi)型名 ,表明他是一個(gè)類(lèi)型名但并未指明具體類(lèi)型。從而,在函數(shù)定義是用T來(lái)定義的變量a,b,c也是未確定的。當(dāng)函數(shù)調(diào)用時(shí),編譯器會(huì)根據(jù)實(shí)參的類(lèi)型來(lái)確定T的類(lèi)型。

class與typename作用相同,可以互換,但為了與類(lèi)class區(qū)分,一般用typename。

需要注意的是,函數(shù)模板只適用于函數(shù)體相同,函數(shù)參數(shù)個(gè)數(shù)相同而數(shù)據(jù)類(lèi)型不同的情況,如果參數(shù)個(gè)數(shù)不同,則不能使用函數(shù)模板。

二、類(lèi)模板 1.與函數(shù)模板類(lèi)似,有時(shí),有兩個(gè)或多個(gè)類(lèi),其功能相同,僅僅是數(shù)據(jù)類(lèi)型不同

如下面聲明了一個(gè)類(lèi),用來(lái)比較兩個(gè)整數(shù)的大小。

class Compare_int 
{
   public:
     Compare_int (int a,int b)//定義構(gòu)造函數(shù)
        {x=a;y=b;}
     int max()
     {return (x>y)?x:y;}
     int min()
     {return (x

但如果想對(duì)兩個(gè)浮點(diǎn)數(shù)作比較,還需要重新聲明一個(gè)類(lèi):

class Compare_float 
{
   public:
     Compare_float (float a,float b)//定義構(gòu)造函數(shù)
        {x=a;y=b;}
    float max()
     {return (x>y)?x:y;}
    float min()
     {return (x

顯然,這基本上是重復(fù)性的工作,所以,c++增加了template功能,用來(lái)減少重復(fù)。?

2.類(lèi)模板

對(duì)于上面兩個(gè)類(lèi),可以聲明一個(gè)通用的模板,他可以有一個(gè)或多個(gè)虛擬的類(lèi)型參數(shù)

template//聲明一個(gè)模板,虛擬類(lèi)型名為numtype
class Compare

  {
       public:
         Compare(numtype a, numtype b)//定義構(gòu)造函數(shù)
           {x=a;y=b;}
          numtype max()
           {return (x>y)?x:y;}
          numtype min()
           {return (x

與前面Compare_int不同的是:1.聲明類(lèi)模板要增加一行 template2.原有的類(lèi)型名int換成虛擬類(lèi)型參數(shù)名numtype

可以這樣說(shuō)類(lèi)模板是類(lèi)的抽象,類(lèi)是類(lèi)模板的實(shí)例。

類(lèi)模板的使用

類(lèi)定義對(duì)象的方法:Compare_int com(4,7);? ,類(lèi)模板定義對(duì)象與此類(lèi)似,但不能直接寫(xiě)Compare com(4,7);因?yàn)镃ompare只是類(lèi)模板名,他不是一個(gè)具體的類(lèi),類(lèi)模板中的類(lèi)型numtype不是一個(gè)實(shí)際的類(lèi)型,只是一個(gè)虛擬的類(lèi)型,不能用來(lái)定義對(duì)象。因此,我們需要一個(gè)實(shí)際的類(lèi)型名來(lái)取代虛擬類(lèi)型 如下:

Comparecom(4,7);

不難看出,其一般形式為:類(lèi)模板名<實(shí)際類(lèi)型名>對(duì)象名(參數(shù))


總結(jié):可以這樣聲明和使用類(lèi)模板

1:先寫(xiě)出一個(gè)實(shí)際的類(lèi)(如上面的Compare_int)

2:將此類(lèi)準(zhǔn)備改變的類(lèi)型名(如int改為float)改成虛擬類(lèi)型名(如上面的numtype)

3:在類(lèi)聲明前加一行

template

4:用類(lèi)模板定義對(duì)象

類(lèi)模板名<實(shí)際類(lèi)型名>對(duì)象名;

類(lèi)模板名<實(shí)際類(lèi)型名>對(duì)象名(實(shí)參表);

如:?

Comparecom;

Comparecom(3,7);

5:如果在類(lèi)模板外定義成員函數(shù),應(yīng)寫(xiě)成類(lèi)模板形式:

template

函數(shù)類(lèi)型 類(lèi)模板名<虛擬類(lèi)型參數(shù)>::成員函數(shù)名(函數(shù)形參表){……}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱(chēng):c++模板-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article26/dejecg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站品牌網(wǎng)站建設(shè)、電子商務(wù)ChatGPT、網(wǎng)站內(nèi)鏈Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)