This question already has answers here:
About C++ classes with self reference

(2个答案)


6年前关闭。




我正在尝试在c++中添加QuadTree。到目前为止,我有以下代码:
class QuadTree {
private:
    AABB bounds;

    QuadTree children[]; // this line
public:
    QuadTree(AABB bounds) : bounds(bounds) {

    }
};

但是我收到一个错误“错误:不允许使用不完整的类型”。我究竟做错了什么?

最佳答案

首先,您不能声明没有大小的数组。您的错误正说明问题;)

其次,不允许在对象类中创建相同类的对象。

您唯一可以做的就是在此类中引用或指向同一类的对象。

所以改变这个:

QuadTree children[]; // this line

对此:
QuadTree **children; // this line

09-27 18:29