+ -
当前位置:首页 → 问答吧 → 讨论一下“优雅”的定义全局变量的问题

讨论一下“优雅”的定义全局变量的问题

时间:2011-12-11

来源:互联网

在C++里,如果定义全局变量,通常可以这么干:

glbs.cpp
C/C++ code

int nprocs;



glbs.h
C/C++ code

#ifndef _GLBS
#define _GLBS
    extern int nprocs;
#endif // _GLBS



可是,如果在某个时刻,想改变nprocs的类型,如int变double,就得同时修改.cpp和.h两个文件。但是,这样做一方面很麻烦,一方面如果修改不一致就会出错。而如果用typedef的话,对于这样的小变量实在是不值得。

也可以定义一个公用类,定义一堆静态全局变量和全局函数:
Glbs.h
C/C++ code

#ifndef _GLBS
#define _GLBS
    class Glbs {
    public:
        Glbs() {}
        ~Glbs() {}
    public:
        static int nprocs;
    }
#endif // _GLBS



这个方法好像有用,但是,这个方法有什么缺点吗?

谢谢大家!

作者: couplecluster   发布时间: 2011-12-11

也可以定义一个公用类,定义一堆静态全局变量和全局函数:
--------
这个方法的好处是可以直接放在头文件中。
适合你的要求,没啥坏处。
最好再用名字空间封装起来,以免名字污染。

作者: Loaden   发布时间: 2011-12-11

up!!!!!

作者: btloveet   发布时间: 2011-12-11