第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C+:類數(shù)據(jù)成員的初始化順序

C+:類數(shù)據(jù)成員的初始化順序

C++
手掌心 2019-07-13 15:05:21
C+:類數(shù)據(jù)成員的初始化順序在下面的代碼中,當X名為Will the ctor ofA或B先打電話?它們放在類主體中的順序是否控制了這一點?如果有人能從C+標準中提供一段文字來討論這個問題,那就太完美了。class A {};class B {};class X{  A a;  B b;};
查看完整描述

2 回答

?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

順序是它們在類定義中出現(xiàn)的順序-這來自C+標準第12.6.2節(jié):

5.初始化應按以下順序進行:

-首先,并且僅對于下面描述的最派生類的構(gòu)造函數(shù),虛擬基類應按照它們在基類的有向無圈圖的深度(首先左向右遍歷)上出現(xiàn)的順序進行初始化,其中“左到右”是派生類基類說明符-列表中基類名稱的出現(xiàn)順序。

-然后,直接基類將按聲明順序初始化,就像它們出現(xiàn)在基類說明符列表中一樣(不管mem初始化器的順序如何)。

-然后,非靜態(tài)數(shù)據(jù)成員應按照類定義中聲明的順序進行初始化(同樣,無論mem-initializer的順序如何)。

-最后,執(zhí)行構(gòu)造函數(shù)的主體。[注:聲明命令的任務是確保以初始化的相反順序銷毀基和子對象。]


查看完整回答
反對 回復 2019-07-13
?
繁花不似錦

TA貢獻1851條經(jīng)驗 獲得超4個贊

初始化總是按照類成員出現(xiàn)在類定義中的順序進行,在您的示例中是這樣的。a,然后b.

在每個成員的初始化和您的能,會,可以將對尚未初始化的成員的引用傳遞到類成員的構(gòu)造函數(shù)中,但您只能以有限的方式使用它(例如將其地址作為指針),其他用途很可能導致未定義的行為。

階級成員的毀滅總是以相反的順序發(fā)生。

基和成員的初始化順序在12.6.2[class.base.init]/5中定義。


查看完整回答
反對 回復 2019-07-13
  • 2 回答
  • 0 關(guān)注
  • 583 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號