乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      構(gòu)造函數(shù)的魔力

       山峰云繞 2019-11-25

      C 作為C語言的繼承,具有C語言的一些特性,C 主要是面向?qū)ο?,因此離不開類的使用,而類的使用和C語言里面的結(jié)構(gòu)體很像,不過,它比結(jié)構(gòu)體更加靈活。今天我就把使用類時碰到的關(guān)于構(gòu)造函數(shù)的知識整理起來,因為構(gòu)造函數(shù)實在是太多變了,我覺得很有必要寫出來,希望可以幫助到你們。

      類為什么不能進行初始化?

      因為類就像結(jié)構(gòu)體一樣只是進行了聲明,并沒有實際的開辟空間,所以無法對數(shù)據(jù)成員進行初始化,這時候要想初始化只能借助構(gòu)造函數(shù)

      什么是構(gòu)造函數(shù)?

      1.構(gòu)造函數(shù)是一種特殊的成員函數(shù),與其他的成員函數(shù)不同,不需要用戶調(diào)用它,而是在建立對象時自動執(zhí)行。

      2.構(gòu)造函數(shù)的名字必須和類名同名,而不能任意命名,以便編譯系統(tǒng)可以識別。

      3.構(gòu)造函數(shù)不具有任何類型,不返回任何值

      4.構(gòu)造函數(shù)其實不光可以執(zhí)行初始化,還可以進行其他操作,但是為了讓程序保持清晰的思路,一般不建議這么做。

      5.千萬不要自己去調(diào)用構(gòu)造函數(shù),這是極其錯誤的行為

      要想使用好構(gòu)造函數(shù),這上面的幾點一定要牢記,接下來我就分析一下構(gòu)造函數(shù)具有哪些形式。

      ps:由于我之前的筆風(fēng)都是偏嚴(yán)肅,但是實際上我的性格比較活潑,所以不喜歡太生硬的陳述,這次我決定小小改變一下,讓文章可以看著活潑一點,不那么死板

      對象的初始化

      在C 里面,聲明一個類時,并不能直接進行初始化,這時候,你要還是想初始化該怎么辦呢?這就要用到構(gòu)造函數(shù)了。

      構(gòu)造函數(shù)進行對象的初始化可謂是得心應(yīng)手,但是構(gòu)造函數(shù)的形式實在是太多了,所以我決定分幾種類型進行說明

      1.在構(gòu)造函數(shù)內(nèi)部直接進行初始化

      雖然C 的語法就是不允許類直接進行初始化,但是它又增加了一個構(gòu)造函數(shù)來間接初始化,關(guān)鍵是這個構(gòu)造函數(shù)是相當(dāng)?shù)暮糜冒?。我剛上手幾天就感覺到了,哈哈哈,初學(xué)者的福音。廢話不多說,先將代碼放在下面,稍后解釋

      無參構(gòu)造函數(shù),最簡單的一種

      上面這種事最簡單的,你可以把它這樣認為,構(gòu)造函數(shù)是會自動生成的,但是這一步你并不能看到,而你顯式地把它寫出來,是為了方便理解,因為C 編譯器會做很多我們看不到的內(nèi)部操作,這樣做事為了新手更好的理解

      上面應(yīng)該很好理解吧,畢竟我也是個初學(xué)者,但是還是很容易看懂呢。
      抓住一個點,自動調(diào)用,所以這種類型的構(gòu)造函數(shù)就是在定義一個類之后,將類里面的對象直接賦初值

      再來接著看下面這種

      這是在類外定義的無參構(gòu)造函數(shù),這點和在類外定義成員函數(shù)是類似的,都需要在類體中先進行聲明。類外定義的無參構(gòu)造函數(shù),它的運作機制大概是下面這樣的

      1.在定義對象時,就已經(jīng)將實參給出

      2.在建立對象時,編譯器要做的就是把實參的值傳遞給構(gòu)造函數(shù)相應(yīng)的形參然后把他們直接作為數(shù)據(jù)成員的初值

      記住,這里的初始化相當(dāng)于是主函數(shù)中完成的,只是將實參傳了過去。

      構(gòu)造函數(shù)的參數(shù)列表

      如上所述,構(gòu)造函數(shù)可以通過實參傳遞給構(gòu)造函數(shù)的形參,從而完成初始化,其實,他還可以將初始化變成多種形式

      上面的代碼,就是利用了構(gòu)造函數(shù)參數(shù)列表進行的初始化。box1傳遞了一個實參,因此,其余的兩個參數(shù)都需要直接依靠構(gòu)造函數(shù)給出的形參進行初始化,而其余的也分別給出了兩個和三個。

      但是你要知道的是,傳遞給構(gòu)造函數(shù)的參數(shù)必須類型是準(zhǔn)確的,否則它會因為無法識別類型而報錯。

      總結(jié):構(gòu)造函數(shù)的形式真的可以說是千變?nèi)f化的,但是我們只要熟悉了這幾種常見的類型,那就可以觸類旁通,掌握這個知識點。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多