怎么解决,如我在sino.h中#include"a.h",但在main.cpp中#include"a.h"和#include"sino.h",就会报错,如何解决,谢谢

解决方案 »

  1.   

    当然会报错...你在main.cpp里include了 "a.h",然后include 了"sino.h".在"sino.h"里本身又包含了"a.h",相当于重复包含"a.h"两次,相当于"a.h"里的变量和函数声明了两次...当然出错....
    你只需要在main.cpp里去掉#include"a.h"只需包含#include "sino.h"就可以了...
      

  2.   

    在每个头文件开头写
    #pragma once
      

  3.   

    在每个.h文件中都使用宏定义来避免重复包含,比如:
    //a.h #ifndef A_H_  
    #define A_H_
    ......// 你的头文件的内容
    #endif
      

  4.   

    在头文件中用条件编译来保证只包含一次,比如:
    // a.h
    #ifndef A_H_
    #define A_H_
    ...... // 你的头文件中的内容
    #endif
      

  5.   

    在头文件中用条件编译来保证只包含一次,比如:
    // a.h
    #ifndef A_H_
    #define A_H_
    ...... // 你的头文件中的内容
    #endif
      

  6.   

    或者
    #ifndef _HEAD_FILE_H(你的头文件标识,一般大写)
    #define _HEAD_FILE_H#endif
      

  7.   

    在头文件中引入如下定义:
    #ifndef YOURFILENAME_H
    #define YOURFILENAME_H//...其他定义或声明#endif /* YOURFILENAME_H */
    GOOD LUCK!