如题
一般情况下,C++定义一个类会用2个文件,“class.h”和 “class.cpp”,
使用的时候一般会让函数在.h中声明,然后.cpp中定义,而成员数据一般在构造函数或者.h中就初始化了。
然而,static修饰的静态数据成员,必须在类的声明以外来初始化。也就是说如下:
//.h
class Cls
{
private:
Cls();
~Cls();
static Cls* inctance;//声明
public:
static Cls* get();//单例模式的获取方法
};
.cpp
Cls* Cls::get()
{
if(instance==0)
instance = new Cls();
return instance;
}
//必须在此来初始化才能用
Cls* Cls::instance = 0;
//.main
//在main中可以用::运算符来使用静态方法
//Cls* cls = Cls::get();