C/C++編程筆記:為什么在C++中空類的大小不為零?
2021-04-20 20:09 作者:C語言編程__Plus | 我要投稿

首先,我們來預(yù)測以下程序的輸出??
輸出:1
空類的大小不為零。通常是1個(gè)字節(jié)。確保兩個(gè)不同的對象具有不同的地址是非零的。請參見以下示例。?
輸出:Fine
由于相同的原因(不同的對象應(yīng)該具有不同的地址),“ new”總是返回指向不同對象的指針。請參見以下示例。?
輸出:Fine
現(xiàn)在猜測以下程序的輸出(這很棘手)?
輸出:4
請注意,輸出不大于4。有一個(gè)有趣的規(guī)則,說空的基類不需要用單獨(dú)的字節(jié)表示。因此,在基類為空的情況下,編譯器可以自由進(jìn)行優(yōu)化。作為練習(xí),請?jiān)诰幾g器上嘗試以下程序。
輸出:
sizeof(Empty) 1
sizeof(Derived1) 1
sizeof(Derived2) 8
sizeof(Derived3) 1
sizeof(Derived4) 16
sizeof(Dummy) 1
每日分享小知識(shí),希望對你有幫助~
另外如果你想更好的提升你的編程能力,學(xué)好C語言C++編程!彎道超車,快人一步!筆者這里或許可以幫到你~
微信公眾號(hào):C語言編程學(xué)習(xí)基地
分享(源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)
歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!

標(biāo)簽: