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

时间:2012-11-28 13:07:21

标签: c++ class instance

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

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

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

我该怎么办?

2 个答案:

答案 0 :(得分:4)

无法做到。考虑一下您的类型的内存占用量:Circle包含Circle,因此其大小不能小于内部Circle,但该大小与内容Circle的大小相同外部{{1}},达成了矛盾。

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

答案 1 :(得分:0)

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

Circle *parent;