久久久国产精品秘人口麻豆|永久免费AV无语国产|人成电影免费中文字幕|久久AV嫩草影院2

    1. <dfn id="yitbn"><samp id="yitbn"><progress id="yitbn"></progress></samp></dfn>

          <div id="yitbn"></div>

          1. 首頁(yè) - 網(wǎng)校 - 萬(wàn)題庫(kù) - 美好明天 - 直播 - 導(dǎo)航

            計(jì)算機(jī)二級(jí)C++語(yǔ)言程序設(shè)計(jì)考試輔導(dǎo)筆記(十一)

            來(lái)源:考試吧 2018-05-11 13:40:27 要考試,上考試吧! 萬(wàn)題庫(kù)
            “計(jì)算機(jī)二級(jí)C++語(yǔ)言程序設(shè)計(jì)考試輔導(dǎo)筆記(十一)”供考生參考。更多計(jì)算機(jī)等級(jí)考試內(nèi)容請(qǐng)?jiān)L問(wèn)考試吧計(jì)算機(jī)等級(jí)考試網(wǎng)。

              點(diǎn)擊查看:計(jì)算機(jī)二級(jí)C++語(yǔ)言程序設(shè)計(jì)考試輔導(dǎo)筆記匯總

              構(gòu)造函數(shù)

              什么是構(gòu)造函數(shù)?通俗的講,在類(lèi)中,函數(shù)名和類(lèi)名相同的函數(shù)稱(chēng)為構(gòu)造函數(shù)。上面的Box()函數(shù)就是構(gòu)造函數(shù)。C++允許同名函數(shù),也就允許在一個(gè)類(lèi)中有多個(gè)構(gòu)造函數(shù)。如果一個(gè)都沒(méi)有,編譯器將為該類(lèi)產(chǎn)生一個(gè)默認(rèn)的構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)可能會(huì)完成一些工作,也可能什么都不做。

              絕對(duì)不能指定構(gòu)造函數(shù)的類(lèi)型,即使是void型都不可以。實(shí)際上構(gòu)造函數(shù)默認(rèn)為void型。

              當(dāng)一個(gè)類(lèi)的對(duì)象進(jìn)入作用域時(shí),系統(tǒng)會(huì)為其數(shù)據(jù)成員分配足夠的內(nèi)存,但是系統(tǒng)不一定將其初始化。和內(nèi)部數(shù)據(jù)類(lèi)型對(duì)象一樣,外部對(duì)象的數(shù)據(jù)成員總是初始化為0。局部對(duì)象不會(huì)被初始化。構(gòu)造函數(shù)就是被用來(lái)進(jìn)行初始化工作的。當(dāng)自動(dòng)類(lèi)型的類(lèi)對(duì)象離開(kāi)其作用域時(shí),所站用的內(nèi)存將釋放回系統(tǒng)。

              看上面的例子,構(gòu)造函數(shù)Box()函數(shù)接受三個(gè)整型擦黑素,并把他們賦值給立方體對(duì)象的數(shù)據(jù)成員。

              如果構(gòu)造函數(shù)沒(méi)有參數(shù),那么聲明對(duì)象時(shí)也不需要括號(hào)。

              1.使用默認(rèn)參數(shù)的構(gòu)造函數(shù)

              當(dāng)在聲明類(lèi)對(duì)象時(shí),如果沒(méi)有指定參數(shù),則使用默認(rèn)參數(shù)來(lái)初始化對(duì)象。

              #include iostream.h

              class Box

              {

              private:

              int height,width,depth;

              public:

              Box(int ht=2,int wd=3,int dp=4)

              {

              height=ht;

              width=wd;

              depth=dp;

              }

              ~Box();

              int volume()

              {

              return height*width*depth;

              }

              };

              int main()

              {

              Box thisbox(3,4,5); //初始化

              Box defaulbox; //使用默認(rèn)參數(shù)

              cout< cout<

              return 0;

              }

              2.默認(rèn)構(gòu)造函數(shù)

              沒(méi)有參數(shù)或者參數(shù)都是默認(rèn)值的構(gòu)造函數(shù)稱(chēng)為默認(rèn)構(gòu)造函數(shù)。如果你不提供構(gòu)造函數(shù),編譯器會(huì)自動(dòng)產(chǎn)生一個(gè)公共的默認(rèn)構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)什么都不做。如果至少提供一個(gè)構(gòu)造函數(shù),則編譯器就不會(huì)產(chǎn)生默認(rèn)構(gòu)造函數(shù)。

              3.重載構(gòu)造函數(shù)

              一個(gè)類(lèi)中可以有多個(gè)構(gòu)造函數(shù)。這些構(gòu)造函數(shù)必須具有不同的參數(shù)表。在一個(gè)類(lèi)中需要接受不同初始化值時(shí),就需要編寫(xiě)多個(gè)構(gòu)造函數(shù),但有時(shí)候只需要一個(gè)不帶初始值的空的Box對(duì)象。

              #include iostream.h

              class Box

              {

              private:

              int height,width,depth;

              public:

              Box() { //nothing }

              Box(int ht=2,int wd=3,int dp=4)

              {

              height=ht;

              width=wd;

              depth=dp;

              }

              ~Box();

              int volume()

              {

              return height*width*depth;

              }

              };

              int main()

              {

              Box thisbox(3,4,5); //初始化

              Box otherbox;

              otherbox=thisbox;

              cout< return 0;

              }

              這兩個(gè)構(gòu)造函數(shù)一個(gè)沒(méi)有初始化值,一個(gè)有。當(dāng)沒(méi)有初始化值時(shí),程序使用默認(rèn)值,即2,3,4。

              但是這樣的程序是不好的。它允許使用初始化過(guò)的和沒(méi)有初始化過(guò)的Box對(duì)象,但它沒(méi)有考慮當(dāng)thisbox給otherbox賦值失敗后,volume()該返回什么。較好的方法是,沒(méi)有參數(shù)表的構(gòu)造函數(shù)也把默認(rèn)值賦值給對(duì)象。

              class Box

              {

              int height,width,depth;

              public:

              Box()

              {

              height=0;width=0;depth=0;

              }

              Box(int ht,int wd,int dp)

              {

              height=ht;width=wd;depth=dp;

              }

              int volume()

              {

              return height*width*depth;

              }

              };

              這還不是最好的方法,更好的方法是使用默認(rèn)參數(shù),根本不需要不帶參數(shù)的構(gòu)造函數(shù)。

              class Box

              {

              int height,width,depth;

              public:

              Box(int ht=0,int wd=0,int dp=0)

              {

              height=ht;width=wd;depth=dp;

              }

              int volume()

              {

              return height*width*depth;

              }

              };

              析構(gòu)函數(shù)

              當(dāng)一個(gè)類(lèi)的對(duì)象離開(kāi)作用域時(shí),析構(gòu)函數(shù)將被調(diào)用(系統(tǒng)自動(dòng)調(diào)用)。析構(gòu)函數(shù)的名字和類(lèi)名一樣,不過(guò)要在前面加上 ~ 。對(duì)一個(gè)類(lèi)來(lái)說(shuō),只能允許一個(gè)析構(gòu)函數(shù),析構(gòu)函數(shù)不能有參數(shù),并且也沒(méi)有返回值。析構(gòu)函數(shù)的作用是完成一個(gè)清理工作,如釋放從堆中分配的內(nèi)存。

              我們也可以只給出析構(gòu)函數(shù)的形式,而不給出起具體函數(shù)體,其效果是一樣的,如上面的例子。但在有些情況下,析構(gòu)函數(shù)又是必需的。如在類(lèi)中從堆中分配了內(nèi)存,則必須在析構(gòu)函數(shù)中釋放。

            掃描/長(zhǎng)按二維碼幫助考試通關(guān)
            2018年等考報(bào)考資訊
            2018等考各科通關(guān)技巧
            2018各科最新預(yù)測(cè)試卷
            2018等考各科備考資料

            微信搜索"考試吧"了解更多考試資訊、下載備考資料

              相關(guān)推薦:

              2018年全國(guó)計(jì)算機(jī)等級(jí)考試必做試題匯總(各科目)

              2018年全國(guó)計(jì)算機(jī)等級(jí)考試復(fù)習(xí)知識(shí)點(diǎn)匯總(各科目)

              2018年全國(guó)計(jì)算機(jī)等級(jí)考試時(shí)間|教材目錄(2018年版)

              2018全國(guó)計(jì)算機(jī)等級(jí)考試備考經(jīng)驗(yàn)及應(yīng)試技巧匯總

              考試內(nèi)容|考試大綱|2018計(jì)算機(jī)等級(jí)考試科目

              歷年真題匯總|考試吧策劃:2018年計(jì)算機(jī)等級(jí)考試報(bào)考指南

            文章搜索
            萬(wàn)題庫(kù)小程序
            萬(wàn)題庫(kù)小程序
            ·章節(jié)視頻 ·章節(jié)練習(xí)
            ·免費(fèi)真題 ·?荚囶}
            微信掃碼,立即獲。
            掃碼免費(fèi)使用
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            此欄目下沒(méi)有文章
            版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@eeeigo.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
            Copyright © 2004- 考試吧計(jì)算機(jī)等級(jí)考試網(wǎng) 出版物經(jīng)營(yíng)許可證新出發(fā)京批字第直170033號(hào) 
            京ICP證060677 京ICP備05005269號(hào) 中國(guó)科學(xué)院研究生院權(quán)威支持(北京)
            在線(xiàn)模擬試題
            考證通關(guān)殺器
            考試最新資訊
            學(xué)
            一次通關(guān)技巧