现在我总结一下问题的解决过程和方法:
方法一:利用友元类
我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:
#include "B.h"
class CA: public CDialog
{
friend class CB;
{
friend class CB;
public:
CB* m_b; //注意一定要是指针类型
}
在另一个类中可以这样声明:
#include "A.h"
class CB: public CDialog
{
friend class CA;
public:
CA * m_a; //注意一定要是指针类型
{
friend class CA;
public:
CA * m_a; //注意一定要是指针类型
}
最后关键的是在每一个类的构造函数里
new 一个对方的类出来就ok了!
方法二:
我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:
#include "B.h"
class CA: public CDialog
{
friend class CB;
{
friend class CB;
public:
CB* m_b; //注意一定要是指针类型
}
在另一个类中可以这样声明:
class CA;
class CB: public CDialog
{
public:
CA * m_a; //注意一定要是指针类型
{
public:
CA * m_a; //注意一定要是指针类型
}
在cb.cpp文件中包含头文件
#include "ca.h"
最后关键的是在每一个类的构造函数里
new 一个对方的类出来就ok了!
转自:http://hi.baidu.com/030502505/blog/item/4a7eaba2e9cd12aacaefd06f.html/cmtid/11994e2a68a059315243c1b4