成员指向彼此的类

时间:2014-05-26 06:11:27

标签: c++ class pointers

有一个Square指向四个Face。此外,每个Face指向两个Square。由于首先定义了其中一个类,编译器会抱怨。那么我该如何解决这个问题呢?使用指针的目的是,如果我在面部进行更改,我将不需要对正方形进行任何更改。在这种情况下,这将自动完成。

class Square
{
    Face* faces[4];
};

class Face
{
    Square* squares[2]
};

1 个答案:

答案 0 :(得分:1)

只需向前宣布一个类;

class Face;
class Square{
 Face* faces[4];
};

class Face{
 Square* squares[2]
};

注意:通过前向声明,您只能使用指针/引用(正如您现在使用的那样)。但您无法在Face faces[4];中使用Square。因为它是声明,而不是定义。要使用对象,编译器必须知道对象的定义。