我正在创建一个名为Circle
的类,并且需要一个公共属性来访问其“父”Circle
实例。因此,我这样编码:
class Circle {
public:
...
Circle parent;
...
}
但这给了我一个错误:Incomplete type is not allowed
我该怎么办?
答案 0 :(得分:4)
无法做到。考虑一下您的类型的内存占用量:Circle
包含Circle
,因此其大小不能小于内部Circle
,但该大小与内容Circle
的大小相同外部{{1}},达成了矛盾。
也许您打算存储指针或智能指针?这是允许的,因为编译器已知指针的大小。
答案 1 :(得分:0)
您应该将parent定义为指向Circle
的指针:
Circle *parent;