freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序員面試精選-文庫吧資料

2025-08-05 02:49本頁面
  

【正文】 成而來的類,例如Point_T和Point_T都是模板類。例如max,max等都是模板函數(shù)。例如前面例題的max是一個函數(shù)模板。有一些概念需要區(qū)別:函數(shù)模板與模板函數(shù),類模板和模板類是不同的意思。代碼555行,輸出對象intTotalPt和floatTotalPt的內(nèi)容。代碼51行,對intPt1和intPt2進(jìn)行對象加法,結(jié)果保存到intTotalPt中,此過程先調(diào)用“+”函數(shù),再調(diào)用了“=”函數(shù)。代碼444行,定義了兩個Point_T類的對象intPt1和intPt2,表明這兩個對象的成員a和b都是int類型。}Point_T類就是一個類模板,它的成員a和b分別為T1和T2類型,這里我們還實(shí)現(xiàn)了它的構(gòu)造函數(shù)、賦值函數(shù)、“+”運(yùn)算符的重載以及輸出流操作符“”的重載。0。//輸出Point_T的對象5657endl。floatTotalPtcout//類型為Point_T的對象相加5354floatPt2。floatPt1floatTotalPt+=5051Point_TintTotalPt。//T1和T2都是float4748)。Point_TfloatPt1(,//T1和T2都是int454)。Point_TintPt1(1,{43int39return)。out//輸出(a,(out//重載輸出流操作符35out,(ostreamamp。operatorostreamamp。}3233temp。30temp。{27pt2)Point_Tamp。operatortemplate2522return=20thisa//賦值函數(shù)18amp。template17}。amp。pt1,+(Point_TPoint_T//賦值函數(shù)13pt)。operator=(Point_TPoint_Tamp。{}a(ta),tb)ta,//默認(rèn)構(gòu)造函數(shù)11b(0)://成員b為T2類型10b。//成員a為T1類型9a。public:8Point_T6template5std。using1因此可能寫出類似Point_int_int、Point_float_int、Point_float_float等這樣的類。class類模板名31C++提供的類模板是一種更高層次的抽象的類定義,用于使用相同代碼創(chuàng)建不同類模板的定義與函數(shù)模板的定義類似,只是把函數(shù)摸板中的函數(shù)定義部分換作類說明,并對類的成員函數(shù)進(jìn)行定義即可。templateFunction_Definition其中,F(xiàn)unction_Definition為函數(shù)定義;TYPE_LIST被稱為類型參數(shù)表,是由—系列代表類型的標(biāo)識符組成的,其間用逗號分隔,這些標(biāo)識符的通常風(fēng)格是由大寫字母組成,ARG_LIST稱為變量表,其中含有由逗號分隔開的多個變量說明,相當(dāng)于一般函數(shù)定義中的形式參數(shù)。通過用戶提供的具體參數(shù),C++編譯器在編譯時(shí)刻能夠?qū)⒑瘮?shù)模板實(shí)例化,根據(jù)同一個模板創(chuàng)建出不同的具體函數(shù),這些函數(shù)之間的不同之處主要在于函數(shù)內(nèi)部一些數(shù)據(jù)類型的不同,而由模板創(chuàng)建的函數(shù)的使用方法與一般函數(shù)的使用方法相同。}8考點(diǎn):函數(shù)模板與類模板的基本概念和區(qū)別出現(xiàn)頻率:★★★解析:(1)什么是函數(shù)模板和類模板。AppendNode(head,headi++)410。i1。ifor=DbNode}我們可以使用其中的CreateList()和AppendNode()來生成一個鏈表,下面是一個數(shù)據(jù)生成從0到9含有10個節(jié)點(diǎn)的循環(huán)鏈表。head。3435=33=}32pright。pp。qNULL)28while(p*q。=DbNode=DbNode{data)*head,DbNode}2021pnode。1718==16=15(DbNode*pnode//表頭節(jié)點(diǎn)不作為存放有意義數(shù)據(jù)的節(jié)點(diǎn)14//參數(shù)給出表頭節(jié)點(diǎn)數(shù)據(jù)13*CreateList(int//創(chuàng)建鏈表12pnode。//讓其前驅(qū)和后繼指針都指向自身8==6=5(DbNode*pnode{4*CreateNode(int//根據(jù)數(shù)據(jù)創(chuàng)建創(chuàng)建節(jié)點(diǎn)2()函數(shù)總在表尾插入新節(jié)點(diǎn)(其內(nèi)部調(diào)用CreateNode()生成節(jié)點(diǎn)),返回表頭節(jié)點(diǎn)。qq(1)建立雙向鏈表:為方便,這里定義了三個函數(shù):q}DbNodeDbNodeintDbNode2typedef解決方法:把C++模板中與參數(shù)無關(guān)的代碼分離出來。比如代碼24~26行實(shí)例化的模板類都共享Base模板類,從而他們的成員函數(shù)都共享Base模板類中的work這個單一的拷貝。與Derived類一樣,Base類也是一個類模板,但是與Derived類不一樣的是,它參數(shù)化的僅僅是類型T,而沒有num。32return()。()。()。Derivedd3。Derivedd2。Derivedd1。main()232122}20Base::work(num)。work()17public:16Base14:class1112}10endl。numcoutworkcoutnum)6void{4class對類模板A可以進(jìn)行如下地修改:1如何避免由于這種代碼膨脹呢?有一個原則,就是把C++模板中與參數(shù)無關(guān)的代碼分離出來。這就是所說的由于模板導(dǎo)致的代碼膨脹。在本例中,由于num的不同,代碼14到17行的調(diào)用將會生成了三個A的實(shí)例,然后在18~21行又生成了不同的函數(shù)調(diào)用。}類模板A取得一個類型參數(shù)T,并且它還有一個類型為int的參數(shù),一個非類型參數(shù)(nontype0。2221201918171615{14int}。98work()coutwork()6public:5A3template2確實(shí)這是一個很重要的技術(shù),但是如果不小心,使用模板可能會導(dǎo)致代碼膨脹。}更多精彩內(nèi)容,請到“
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1