常成员与常对象
- 常对象只能调用常成员函数。
- 常数据成员的初始化只能通过构造函数的初始化列表进行。(不能被赋值,不能调用拷贝构造函数)
——常数据成员在定义对象时必须通过构造函数的初始化化表进行初始化。
- 常成员函数不能调用没有const 修饰的成员。
——说明格式: 返回类型 成员函数名 (参数表) const;
静态数据成员
——只保留一个副本,为该类所有对象所共享。
——表示类属性,在程序开始时产生,程序结束时消失。
- 静态数据成员在类内声明,类外初始化。
类内声明: static 数据类型 静态成员名;
类外初始化: 数据类型 类名::静态数据成员名 = 初始值 //不能加static。
(初始化与它的访问权限无关)
静态成员函数
- 不能存储非静态成员
- 没有this指针
- 访问权限和普通成员一样。
- 类的静态数据成员与全局对象(变量)一样,在数据段中分配内存。
类只是一个型,除静态数据成员外,在没有实例化成对象前不占任何内存。