小女求助 #include 问题,
以下是 a.h 中:
#include "b.h"
void a()
{
    b(); 
}以下是 b.h 中:
#include "a.h"
void b()
{
    a();
}//以上出错是怎么回事?

解决方案 »

  1.   

    在cpp中添加头文件引用,.h文件中使用class a;和class b;类前置声明即可是 a.h 中:class b;
    void a()
    {
        b(); 
    }以下是 b.h 中:
    class a;
    void b()
    {
        a();
    }
    各自的cpp中
    a.cpp
    #include "b.h"b.cpp
    #include "a.h"
      

  2.   

    //a.h
    class b;class a
    {
      b *pb;
    };//b.h
    #include "a.h"class b
    {
      a ma;
    };
      

  3.   

    //a.h
    class b;class a
    {
      b *pb;
    };//b.h
    #include "a.h"class b
    {
      a ma;
    };
      

  4.   

    以下是 a.h 中:
    #include "b.h"
    extern void b();
    void a()
    {
        b(); 
    }以下是 b.h 中:
    #include "a.h"
    extern void a();
    void b()
    {
        a();
    }//请在引用之前先声明
      

  5.   

    在<<c++ primer>>里面有关于类申明和类定义的解说。
    在看到类申明之后、类定定义之前,只能申明类对象指针或引用,但是在类定义之后,可以申明类对象。我想这里的原因应该是一样的。只是不过这里是函数申明和函数定义。
      

  6.   

    这叫nested include files,要这样解决:
    以下是 a.h 中:
    #ifndef _A_H
    #define _A_h#include "b.h"
    void a()
    {
        b(); 
    }#endif以下是 b.h 中:
    #ifndef _B_H
    #define _B_H#include "a.h"
    void b()
    {
        a();
    }#endif
      

  7.   

    Cannot compile the file '...';no compile tool is associated with the file extension.
    Is the header file compiled?
      

  8.   

    在头文件第一行最前面加上:#pragma once