我定义两个类
#include "class2.h"
......
Cclass1
{
  public:
      ....
     class2* m_p2;
   ....
}#include "class1.h"
......
Cclass2
{
  public:
      ....
     class1* m_p1;
   ....
}在两个类中都#include对方,并各定义另一个类的指针,程序总是出错,请问是为什么??

解决方案 »

  1.   

    这样当然是不行的,想一想,把文件A在B中展开,而B中又展开A,可能么?为什么不把这两个类放在一个文件中呢
      

  2.   

    写成这样
    //class1.h
    #pragma once
    class CClass2;
    class CClass1
    {
    ...
    CClass2* m_pClass2;
    ...
    };//class2.h
    #pragma once
    class CClass1;
    class CClass2
    {
    ...
    CClass* m_pClass1;
    ...
    };
    //class1.cpp
    #include "class1.h"
    #include "class2.h"//class2.cpp
    #include "class1.h"
    #include "class2.h"
      

  3.   

    CClass* m_pClass1;
    -->
    CClass1* m_pClass1;
      

  4.   

    To: DentistryDoctor(牙科医生)你可真厉害,崇拜ing...
    看了很多你的回帖,一针见血,佩服。楼主,你就照着 DentistryDoctor(牙科医生)的办法作,准没错,该结贴了!
      

  5.   

    To: DentistryDoctor(牙科医生)
    我也崇拜ing,向你多多学习:)
      

  6.   

    一个#pragma once就搞定了。