欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++成員初始化列表

 更新時間:2022年01月05日 09:53:38   作者:梁唐  
這篇文章主要介紹了C++成員初始化列表,除了可以使用構(gòu)造函數(shù)對類成員進(jìn)行初始化之外,C++還提供了另外一種初始化的方法,叫做成員初始化列表。下面來看看文章的詳細(xì)吧,需要的朋友可以參考一下

文章轉(zhuǎn)自: 公眾號:Coder梁(ID:Coder_LT)

除了可以使用構(gòu)造函數(shù)Classy::Classy(int n, int m): mem1(n), mem2(0), mem3(n*m+2) {
    ...
};類成員進(jìn)行初始化之外,C++還提供了另外一種初始化的方法,叫做成員初始化列表。

我們假設(shè)Classy是一個類,而mem1,mem2mem3都是這個類的數(shù)據(jù)成員,那么類構(gòu)造函數(shù)可以寫成:

Classy::Classy(int n, int m): mem1(n), mem2(0), mem3(n*m+2) {
? ? ...
};

上述代碼將mem1初始化為n,將mem2初始化為了0,mem3初始化成了n*m+2。這些初始化工作是對象創(chuàng)建是完成的,并且在執(zhí)行花括號中的內(nèi)容之前。

有這么幾點需要注意:

  • 這種格式只能用于構(gòu)造函數(shù)
  • 必須用這種格式初始化非靜態(tài)const數(shù)據(jù)成員(C++11之前)
  • 必須用這種格式初始化引用數(shù)據(jù)成員

數(shù)據(jù)成員被初始化的順序和它們在類中定義的順序相同,和初始化列表中的排列順序無關(guān)。

C++11的類內(nèi)初始化:

C++11當(dāng)中允許我們直接對成員變量進(jìn)行賦值:

class Classy {
? ? int mem1 = 10;
? ? const int mem2 = 20;
};

這和在構(gòu)造函數(shù)當(dāng)中使用成員初始化列表等價:

Classy::Classy() : mem1(0), mem2(20) {...}

我們在類當(dāng)中直接初始化之后,我們也可以在成員初始化列表當(dāng)中進(jìn)行覆蓋:

Classy::Classy(int n) : mem1(n) {...}

在這種情況下,mem1的值會被替換成n。

到此這篇關(guān)于C++成員初始化列表的文章就介紹到這了,更多相關(guān)C++成員初始化列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入解析C++11?lambda表達(dá)式/包裝器/線程庫

    深入解析C++11?lambda表達(dá)式/包裝器/線程庫

    這篇文章主要介紹了C++11?lambda表達(dá)式/包裝器/線程庫的相關(guān)知識,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C/C++使用C語言實現(xiàn)多態(tài)

    C/C++使用C語言實現(xiàn)多態(tài)

    這篇文章主要介紹了C/C++多態(tài)的實現(xiàn)機(jī)制理解的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • 一篇文章帶你了解c++運算符重載

    一篇文章帶你了解c++運算符重載

    下面小編就為大家?guī)硪黄钊肜斫釩++運算符重載。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-08-08
  • C語言實現(xiàn)放煙花的程序

    C語言實現(xiàn)放煙花的程序

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)放煙花的程序,有音樂播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • C++?opencv圖像處理實現(xiàn)圖像腐蝕和膨脹示例

    C++?opencv圖像處理實現(xiàn)圖像腐蝕和膨脹示例

    這篇文章主要為大家介紹了C++?opencv圖像處理實現(xiàn)圖像腐蝕和圖像膨脹示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • C++編程中的命名空間基本知識講解

    C++編程中的命名空間基本知識講解

    這篇文章主要介紹了C++編程中的命名空間基本知識講解,包括對C++11中內(nèi)聯(lián)命名空間新特性的介紹,需要的朋友可以參考下
    2016-01-01
  • C++基于Boost.Asio實現(xiàn)端口映射器的過程詳解

    C++基于Boost.Asio實現(xiàn)端口映射器的過程詳解

    Boost.Asio 是一個功能強(qiáng)大的 C++ 庫,用于異步編程和網(wǎng)絡(luò)編程,它提供了跨平臺的異步 I/O 操作,在這篇文章中,我們將深入分析一個使用 Boost.Asio 實現(xiàn)的簡單端口映射服務(wù)器,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • C++如何計算二進(jìn)制數(shù)中1的個數(shù)

    C++如何計算二進(jìn)制數(shù)中1的個數(shù)

    這篇文章主要介紹了C++如何計算二進(jìn)制數(shù)中1的個數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • string居然也可以用<<和>>

    string居然也可以用<<和>>

    今天小編就為大家分享一篇關(guān)于string居然也可以用<<和>>,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • vscode分享代碼插件Polacode介紹

    vscode分享代碼插件Polacode介紹

    這篇文章主要介紹了vscode分享代碼插件Polacode的相關(guān)知識,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05

最新評論