.h是要被include到.cpp中的.
所以,變量定義應該在.cpp中,否則會redefine.
如果在.h中用到某變量,declare一下比include ".h"要好.

解决方案 »

  1.   

    我同意这为仁兄的说法.
    特别是在申请类的时候.最好将变量定义在.cpp中,否则会引起错误.
      

  2.   

    我同意这为仁兄的说法.
    特别是在申请类的时候.最好将变量定义在.cpp中,否则会引起错误.
      

  3.   

    如果在一个头文件中(.h)中定义了一个变量,但又一个工程的两个.cpp文件包含了这个.h会是什么样子呢?我也不知道,请各位大虾指教!
      

  4.   

    假如一定要定义在.h中,为了避免出现redefine,改怎么办
      

  5.   

    如果是全局变量那就一定会redefine
      

  6.   

    只要在.h文件中加入如下语句就可避免redifine
    #ifndef HEADFILE_H  //HEADFILE_H 可以为任何你自己定义的符号
    #define HEADFILE_H//declare your variable or function etc.#endif
      

  7.   

    可以单独建立一个头文件用来包含所有全局变量,并将它包含在其中的一个CPP文件里,该头文件内定义的变量可以作初始化的操作。
    然后可以建立另外一个头文件也包含全局变量的声明,但声明变量是以extern开头的。该头文件可以包含在任意一个CPP文件内,但不能在其内部进行全局变量的初始化。
      

  8.   

    我一般都是在一个.h文件定义变量,然后另外在一个.h,extern这些变量,.c文件就直接包含这两个头文件这样的话,我觉得程序清楚,你总共有多少个全局变量一目了然。例如:
    var.h:
    extern int ga;
    extern int gb;stdafx.h:
    int ga;
    int gb;
    redefine主要是没有使用#ifndef XXX_H_ #define XXX_H_ #endif
    就像tenderfoot(想知道) 说得,头文件都得这样的。
      

  9.   

      我认为:全局变量应该在.h中声明,而局部变量在.cpp中声明这样比较合理,程序不会混乱。