您的位置:首页 > 编程语言 > C语言/C++

C++ 之静态成员 初始化必须在定义外

2017-08-30 16:00 337 查看
如题

一般情况下,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();


探究 C++ Singleton(单例模式)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息