成员相互指向的类[重复]
Posted
技术标签:
【中文标题】成员相互指向的类[重复]【英文标题】:Classes whose members pointing to each other [duplicate] 【发布时间】:2014-05-26 06:11:26 【问题描述】:有一个Square
指向四个Face
s。每个Face
也指向两个Square
s。由于首先定义了其中一个类,因此编译器会抱怨。那么我该如何解决这个问题呢?使用指针的目的是,如果我对面部进行更改,则不需要对正方形进行任何更改。在这种情况下,这将自动完成。
class Square
Face* faces[4];
;
class Face
Square* squares[2]
;
【问题讨论】:
可以转发声明一个类的名字class Face;
在顶部
【参考方案1】:
只需转发声明一个类;
class Face;
class Square
Face* faces[4];
;
class Face
Square* squares[2]
;
注意:通过前向声明,您只能使用指针/引用(就像您现在使用的那样)。但是您不能在Square
中使用Face faces[4];
。因为它是声明,而不是定义。要使用对象,编译器必须知道对象的定义。
【讨论】:
以上是关于成员相互指向的类[重复]的主要内容,如果未能解决你的问题,请参考以下文章