Visual C++ 头文件互相包含的解决方案

来源:互联网 发布:铝合金门窗下料软件 编辑:程序博客网 时间:2024/05/12 03:51

 

  方法一:利用友元类
 
我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:
   #include "B.h"
 
   class CA: public CDialog
   {
       friend class CB;
       public:
        CB* m_b;  //注意一定要是指针类型
   }
 
在另一个类中可以这样声明:
 
   #include "A.h"
   class CB: public CDialog
   {
      friend class CA;

      public:
        CA * m_a;   //注意一定要是指针类型
   }
  
最后关键的是在每一个类的构造函数里 new 一个对方的类出来就ok了!
 
   方法二:
  
我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:
   #include "B.h"
 
   class CA: public CDialog
   {
       friend class CB;
       public:
        CB* m_b;  //注意一定要是指针类型
   }
 
在另一个类中可以这样声明:
 
   class CA;
   class CB: public CDialog
   {
      public:
        CA * m_a;   //注意一定要是指针类型
   }
  
在cb.cpp文件中包含头文件
#include "ca.h"
 
最后关键的是在每一个类的构造函数里 new 一个对方的类出来就ok了!

 

原创粉丝点击