更新时间:2022-10-18 10:50:01
此情况的标准条目?
是的,草案C ++标准说一个类没有完全定义,直到关闭}
,这在 9.2
段 段:
类在classspecifier的closing}被认为是一个完全定义的对象类型(3.9)(或完整类型)。 [...]
并且类的所有非静态数据成员必须是完整的, em>:
非静态(9.4)数据成员不应具有不完全类型。特别地,类C不应包含类C的非静态成员,但它可以包含指向类C的对象的指针或引用。
但在构造函数中也在 2 内完成:
..]
虽然静态成员可以不完整, 9.4.2
段 b
$ b
静态数据成员在其类定义中的声明不是定义,并且可能是除了cv限定的void之外的不完整类型。 ]