一个普通的C++变量被static修饰的时候,会改变两个属性:
- 第一个就是变量会预先分配内存
- 第二个就是改变它的连接属性。
换句话说我们可以在头文件里边写一个static变量,但是当有其他cpp文件include这个文件的时候,每编译一个cpp文件,就会生成一个独立的static变量。也就是说有多少cpp文件include,就有多少相互独立的 static 变量。
若想使用全局唯一的静态变量,参考如下:
static Singleton getInstance()
{
static Singleton singleton;
return singleton;
}