总所周知:static 变量是全局有效地,程序结束的时候才会析构
依赖于这一点:
我们可以用于定义全局变量,并且比较优雅的实现全局变量的使用:
1. 类本身作为全局变量使用
依赖另一点:当类的构造函数为私有时,不能实例化该类对象
class myClass
{
private:
myClass() {}
public:
static myClass* getInstance()
{
static myClass staticClassIns;
return &staticClassIns;
}
publice:
...
}
使用方法:myClass::getInstance() 获取类,该类就会全局有效,并且只会有一份
2. 变量作为全局变量被使用
像下面的这个,存储一个全局变量myPrefix(->->->) ,使用方法myClass::getPrefix() 获取
使用myClass::addPrefix(myClass::getPrefix()) 可以添加一个"->"
class myClass
{
public:
static CString& getPrefix()
{
static CString& myPrefix;
return myClass;
}
static void addPrefix(CString& cstr)
{
cstr += _T("->");
}
}
3. 当然了,还有extern方法使用全局变量的方法:
a.cpp中定义了一个全局变量 int g_bPayFlag;
b.cpp中希望和a.cpp公用这个全局变量的话,定义 extern int g_bPayFlag 就可以使用了