【C++】静态(static)成员用法总结
1 static成员用法
(1) static成员不属于对象,是类的共享成员
(2) static数据成员要在类外初始化,静态成员变量必须在类外初始化,静态成员常量在类中,类外初始化。
(3) 非static成员函数也可以操作静态数据成员
(4) static成员函数属于类,不属于某个对象,既可以通过类名直接调用,也可以通过对象名进行调用,而this指的是当前的对象,静态成员函数不拥有this指针
(5) static成员函数可以访问static成员变量
(6) 虚成员函数(动态绑定)不可能是static 成员函数
2 static类变量和实例变量的区别
(1)static类变量又叫静态成员变量,它不需要创建对象就可以已经在内存中存在了
(2)在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值
(3)static类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果
(4)实例变量则属对象私有,某一个对象将其值改变,不影响其他对象
3 static数据成员的运用(选B)
const static数据成员可以在类内初始化也可以在类外,不能在构造函数中初始化,也不能在构造函数的初始化列表中初始化
static数据成员只能在类外,即类的实现文件中初始化,也不能在构造函数中初始化,不能在构造函数的初始化列表中初始化;
const数据成员只能在构造函数的初始化列表中初始化;
普通数据成员不能在类内初始化,可以在构造函数中初始化,也可以在构造函数的初始化列表中初始化;