写了一个工程,需要定义一些常量/枚举类型/结构体
在其他头文件中需要使用。我现在的做法是:glob.h,把所有这些的声明放在里面extern const int MaxStudentNumber; //常量
struct StudentInfo;               //结构体
enum SEX{M,FM};                    //枚举类型 
......glob.cpp,放入常量的值和一部分结构体成员函数的定义。#include "stdafx.h"
#include "glob.h"const int MaxStudentNumber=0xf0;
......在需要用的地方include "glob.h"
在CxxxDoc.h和CxxxView.h等类的头文件中,因为需要定义StudentInfo类型的成员,我也得加这句include。因为一直都是在自学,我想确认一下,这么做有什么问题吗?

解决方案 »

  1.   

    一般把全局变量写到cpp文件中,不写在h中是为了防止重复定义的问题,当然如果你的h头文件写了防止重复包含的宏就没有这个问题的
      

  2.   

    我还是建议将全局变量写在CPP文件中,写在H文件中一旦出现重复包含的话,找起来很麻烦。
      

  3.   

    我喜欢专门写一个Macro.h来存放各种宏和全局。
    不用cpp文件
      

  4.   

    xxx.h
    a;
    b;
    c;
    geta()
    getb()
    --
    xxx.cppgeta()
    {
       return a;
    }
    这种无论xxx.h 被包含多少次 都只有1份全局变量,而且 其他cpp不需要用extern 来修饰
    getb()
      

  5.   

    更方便的方式是
    1、以theApp类变量的方式定义,只在本程序有用
    2、以一个静态容器类来包容这些变量(static),CMyDefine::theVar1...
    3、全局变量(如楼主),维护起来不太方便、不太安全