且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

关于具有自引用的C ++类

更新时间: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之外的不完整类型。 ]