2015-03-02 68 views
0

我必须编写一个包含2个类的代码,其中一个取决于另一个请参阅图像(只是为了简化)如果你能帮助我?如何编写两个类中的一个取决于另一个类? C++

我不能把图像

+2

请张贴代码(使用4个空格缩进,或突出显示并单击“{}”按钮),而不是图像。如果一个类依赖于另一个类,那么在使用它之前,您需要声明(并可能定义)它所依赖的类。 – 2015-03-02 17:11:48

+0

@stefan我不认为这是(必然)循环依赖。 – crashmstr 2015-03-02 17:30:29

+0

@crashmstr不一定,我同意。但是这是一个非问题,或者它是循环依赖。 – stefan 2015-03-02 17:31:28

回答

1

在C++中,不能创建两个类A和B,其中A将B和B的成员变量将有A的成员变量,这是因为大小必须知道编译器解析成员的时间。如果你仔细想想,这种结构将是无限大:

A将具有B-将有将有B就拥有一个....

这就是为什么我们不能这样做。

您只能将指针作为变量。这是因为指针最后只是内存地址而已,并且内存地址总是已知的(4或8字节)。

A将有B *,就是这样。

B将有A *,就是这样。

为了达到这个目的,你可以做前向声明。

+0

并非完全如此。首先,它也适用于参考(尽管在实践中可能不是一个好主意)。其次,指针无法保证4或8个字节。 – 2015-03-02 17:34:35

+0

我相信'A'也可以包含***参考***到'B','B'参考'A'? (非常类似于指针,但不完全) – abelenky 2015-03-02 17:34:51

+0

@abelenky:没错。尽管对于成员变量来说,指针通常是可取的。 – 2015-03-02 17:35:21

相关问题