2012-06-21 76 views

回答

3

当分配子接口时,其大小包括父级的大小。它们不是独立的对象,它们被合并。 'super'必须被初始化,以便它可以准备其数据成员。然后你的对象初始化它的成员。例如,假设您有一个自定义引用计数接口,需要将'refCnt'初始化为1.然后,将接口置于该接口上。这意味着您的界面的分配大小是参考计数界面的大小+您特定贡献的大小。 (例如,引用计数接口中的'int refCnt'和接口中的'int x'意味着sizeof(您的接口)== 8〜)。因此,分配只需要发生一次。然后,你初始化'超级'(在这种情况下,引用计数接口),所以'refCnt'将是1.之后,你初始化你自己的数据。

+0

请注意,'超'不是一个单独的对象。它只是意味着“自我,但使用超类的命名方法的实现”。 –

3

因为“黄金”已分配为你实例化对象的空间。

您的子类不需要为基类分配(单独)空间。

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

相关问题