读书人

这该怎么声明呢?

发布时间: 2012-03-09 21:42:52 作者: rapoo

这该如何声明呢??
有两个类A和B,A中要访问B中的数据成员,B也要访问A中的数据成员,如何声明?以前遇到过类似的问题,现在忘了

C/C++ code
class B;class A{public:   int a;   A(B& b):a(b.b){}//此处A不知道B中到底有些什么,报错};class B{public:   B(A& a):b(a.a){}   int b;};


[解决办法]
成员函数实现是可以写在类外面的,你把A的构造方法实现写在B的定义后面就是了
[解决办法]
定义A时前置声明了B,但在A的构造函数中使用了B的成员(b.b),而此时A不可能知道B的定义,因此编译报错。

牵涉到B定义的实现,应该放到B的定义后。
[解决办法]
看错了,你相互引用了成员,那就不行了

这个你得吧实现分离出去
[解决办法]
探讨

换指针肯定行,引用没试过

读书人网 >C++

热点推荐