C++ 之静态成员 初始化必须在定义外
2017-08-30 16:00
337 查看
如题
一般情况下,C++定义一个类会用2个文件,“class.h”和 “class.cpp”,
使用的时候一般会让函数在.h中声明,然后.cpp中定义,而成员数据一般在构造函数或者.h中就初始化了。
然而,static修饰的静态数据成员,必须在类的声明以外来初始化。也就是说如下:
探究 C++ Singleton(单例模式)
一般情况下,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(单例模式)
相关文章推荐
- 【c++】为什么类中静态(static)成员不能在类的定义内初始化?
- C++静态成员数据—定义、初始化
- 类的静态数据成员在 类内只能声明,定义和初始化必须在类外
- 类的静态数据成员在 类内只能声明,定义和初始化必须在类外
- C++静态成员的初始化问题,导致定义的静态成员 unresolved
- 类中定义数组提示:静态成员引用必须与特定对象相对
- C++ 静态成员的类内初始化-of non-integral type 问题
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C/C++的结构体中的静态变量必须在结构体外定义初始化
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++ 定义静态数据成员
- C++ 静态成员的类内初始化
- C++ 模板 静态成员 定义(实例化)
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
- C++中关于类中常数静态成员初始化的问题
- 静态成员变量初始化问题。关于 error LNK2005 static int:已经在***.obj中定义
- C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法