|
我们可以在CWinApp的派生类中声明静态成员变量或者成员函数,那么就可以从所有的类去访问他们:
例如:
// MyApp.h
class CMyApp : public CWinApp
{
public:
CMyApp();
static int g_nMyVariable; // 声明一个全局变量
static void g_MyFunction(); // 声明一个全局函数
...
etc
...
};
// MyApp.cpp
int CMyApp::g_nMyVariable = NULL; // 全局变量定义和初始化 CMyApp::g_MyFunction() // 全局函数定义
{
}
现在,这个变量和函数就可以从其他类中通过如下的语法访问:
CMyApp::g_nMyVariable 和 CMyApp::g_MyFunction
全局变量一般这样定义:
1。在一类的.cpp中定义 int myInt;
然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。
2。在stdafx.cpp中加入:
int myInt;
然后在stdafx.h中加入:
extern int myInt
这样定义以后无论在什么文件中都是可见的.
3。比较规范的是,先定义一个Glbs.h,把所有的全局变量原始定义放进去。然后定义一个Externs.h,把你先前定义在Glbs.h中的变量都加上extern。注意:如果你在Glbs.h中设置了初值,那么在Externs.h中就不要加值了。然后调用时,第一次调用的#i nclude <Glbs.h>,以后调用的#i nclude <Externs.h>