2018.2.11
类中的常成员
- 关键字const,在类定义中声明数据成员使用关键字限定,声明时不能初始化。
- 初始化列表,类中的任何函数都不能对常数据成员赋值,包括构造函数。为构造函数添加初始化列表是对常数据成员进行初始化的唯一途径。
- 定义对象时初始化。定义含常数据成员类的对象时需要初始化,给出常数据成员的初始值。
- 函数声明:
double Getcost() const;
- 常函数成员只能读类中的数据成员,不能赋值修改。
- 常函数成员只能调用其它常函数成员。
- 通过常对象只能调用其常函数成员。
类中的静态数据成员
- 关键字static。在类定义中声明静态数据成员需使用关键字,声明时不能初始化。
- 定义以及初始化:必须在类声明的大括号外面对静态成员进行定义,定义是不能再加关键字,可以初始化。
- 在同类函数成员中访问。
- 在类外其他函数中访问,在类外其他函数中访问静态数据成员需以
类名::静态数据成员名
的形式访问。 - 生存期:和全局变量一样静态分配,加载后立即分配内存,直到程序执行结束退出时才被释放。