在一个工程里,有几个类之间调用,只需#include 其他类一次,否则会出现
重复定义的错误。能否不让他出现这个错误

解决方案 »

  1.   

    用宏定义避免,
    具体不知道。
    就像ifdefine
    '''''
    undefine这样,如果定义,就不再定义了!
      

  2.   

    #if !defined(AFX_MAINFRM_H)
    #define AFX_MAINFRM_H
    //
    #endif
      

  3.   

    头文件作为一个重复使用的模块在编译的时候要被扩展到源代码文件中一起编译,这是问题所在。包括了同一个头文件的源代码文件在编译的时候都要把头文件的声明(当然是指一般情况下)都编译一次,所以就会有重定义的现象。
    预编译指令就是要告诉编译器。如果我这个定义模块已经被编译过了,那就不用再编译一遍
    #ifndef 头文件模块名 //在编译时理论上是使用该名字/*----------声明------------*/
    #endif
      

  4.   

    嗬嗬,这个很容易的。
    #ifndef _MYDEFINE //需要保证不同的头文件你取的_MYDEFINE不同;
    #define _MYDEFINE
    .....//这里面就是你的定义了;
    .....
    .....
    #endif
      

  5.   

    #ifndef _MYDEFINE 
    #define _MYDEFINE
    #endif