两个类如何互为对方的成员
比如:
class A
{
public:
B m_b;
}
class B
{
public:
A m_a;
}
如果我这样定义:
class B;
class A
{
public:
B* p_b;
void fun();
}
class B
{
public:
A m_a;
void funB();
}
是可以的,但是如果我在A的函数fun中:
void A::fun()
{
p_b-> funB(); // error
}
请问该如何解决
[解决办法]
class B;
class A
{
public:
B* p_b;
void fun();
}
class B
{
public:
A m_a;
void funB();
}
放到.h中,
实现放到cpp文件中
[解决办法]
用指针
[解决办法]
在A的默认构造函数里p_b = new B;
拷贝构造函数p_b = new B(*(x.p_b));
析构函数里delete p_b;
[解决办法]
用指针,引用,即可以okokok
[解决办法]
将这两个类分别放在不同的头文件中,新建一个头文件,里面include这两个类的头文件,然后这两个类的头文件再包含着个头文件,哈哈,迷糊了吧,也就是说需要一个中间者进行协调。
[解决办法]
你这个程序的问题似乎不在类的声明上,请看一下下面的文章:
http://community.csdn.net/Expert/TopicView3.asp?id=5547203
[解决办法]
在C++Primer中有专门介绍的COPY构造函数的
LZ可以查一下
[解决办法]
friend class
[解决办法]
两种方法
1` 全局指针,在构造函数中p = this;
2` friend类