在类中创建公共属性,该类是此类的实例

Creating a public property inside a class which is an instance of this class

本文关键字:实例 属性 创建      更新时间:2023-10-16

我正在创建一个名为 Circle 的类,需要一个公共属性来访问其"父"Circle实例。因此,我像这样编码:

class Circle {
public:
...
    Circle parent;
...
}

但这给了我一个错误:Incomplete type is not allowed

我该怎么办?

这是做不到的。考虑一下你的类型的内存占用量是多少:一个Circle包含一个Circle,所以它的大小不能小于内Circle,但这个大小与外Circle的大小相同,达到矛盾。

也许您打算存储指针或智能指针?这是允许的,因为编译器知道指针的大小。

您应该将 parent 定义为指向 Circle 的指针:

Circle *parent;