有一个Square
指向四个Face
。此外,每个Face
指向两个Square
。由于首先定义了其中一个类,编译器会抱怨。那么我该如何解决这个问题呢?使用指针的目的是,如果我在面部进行更改,我将不需要对正方形进行任何更改。在这种情况下,这将自动完成。
class Square
{
Face* faces[4];
};
class Face
{
Square* squares[2]
};
答案 0 :(得分:1)
只需向前宣布一个类;
class Face;
class Square{
Face* faces[4];
};
class Face{
Square* squares[2]
};
注意:通过前向声明,您只能使用指针/引用(正如您现在使用的那样)。但您无法在Face faces[4];
中使用Square
。因为它是声明,而不是定义。要使用对象,编译器必须知道对象的定义。