如果是在同一个文件中,
只要把写在后面的类提前申明一下就可以了。如果是不同的文件,那就要在两个头文件相互包含,注意防止循环包含。
在每个头文件开头加上
#ifndef AAA  //不要两个头文件都是AAA
#define AAA在每个头文件结尾加上
#endif

解决方案 »

  1.   

    thank you very much!不过怎样会产生循环包含呀?
      

  2.   

    还没有明白,什么叫做类的互相调用啊?
    是说在ClassA中调用ClassB中的函数,又能在ClassB中调用ClassA中的函数嘛?还是什么啊?
      

  3.   

    呵呵,这是一个人么?比如你
    在C.h文件中定义了一个ClassC,
    在B.h文件中定义了一个ClassB,
    在A.h文件中定义了一个ClassA,如果 ClassA定义中需要ClassB和ClassC,A.h就包含了B.h和C.h,
    如果 ClassB定义中需要ClassC,B.h就要包含C.h,编译时会编译了两遍C.h,因为它被包含了两次,就会发生ClassC重定义,
    编译无法通过,解决方法就是“小糊涂仙”的方法,当然对于这个例子只要把 A.h中的C.h去掉就行了,但复杂的情况就看不过来了,就只好在每个头文件中加#ifndef #define #endif 了,使编译器不会重复编译同一个头文件!
    这回总该明白了吧!