这该如何声明呢??
有两个类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的定义后。
[解决办法]
看错了,你相互引用了成员,那就不行了
这个你得吧实现分离出去
[解决办法]