【发布时间】:2021-12-12 18:02:40
【问题描述】:
我知道子对象是成员子对象、基类子对象和数组。 我找不到任何能明确解释前两个术语的东西。以以下代码为例:
struct A{int a;};
struct B{int b;};
struct C:public A,public B{};
我认为:int a 是可能的、尚未实例化的 A 类型对象的成员子对象; int a 是一个可能的、尚未实例化的 C 类型对象的基类子对象。对吗? 成员子对象和基类子对象的定义是什么?可以举个例子吗?
【问题讨论】:
-
"我知道子对象是成员子对象、基类子对象和数组。"你从哪里得到这些条款的? 那个来源对这些条款有什么看法?
-
不,
a是A类的成员(它也是C类的成员,因为 C 是A)。没有“成员子对象”这样的东西。 -
"对象可以包含其他对象,称为子对象。子对象可以是成员子对象 (11.4)、基类子对象 (11.7) 或数组元素。" 6.7.2(对象模型)C++ ISO草案2020