2012-06-21 101 views

回答

3

當分配子接口時,其大小包括父級的大小。它們不是獨立的對象,它們被合併。 'super'必須被初始化,以便它可以準備其數據成員。然後你的對象初始化它的成員。例如,假設您有一個自定義引用計數接口,需要將'refCnt'初始化爲1.然後,將接口置於該接口上。這意味着您的界面的分配大小是參考計數界面的大小+您特定貢獻的大小。 (例如,引用計數接口中的'int refCnt'和接口中的'int x'意味着sizeof(您的接口)== 8〜)。因此,分配只需要發生一次。然後,你初始化'超級'(在這種情況下,引用計數接口),所以'refCnt'將是1.之後,你初始化你自己的數據。

+0

請注意,'超'不是一個單獨的對象。它只是意味着「自我,但使用超類的命名方法的實現」。 –

3

因爲「黃金」已分配爲你實例化對象的空間。

您的子類不需要爲基類分配(單獨)空間。

您還可能在this related question中找到一些有用的信息。

相關問題