cpp_const_member - ShenYj/ShenYj.github.io GitHub Wiki
被const修饰的成员变量、非静态成员函数
- 必须初始化(类内部初始化),可以在声明的时候直接初始化赋值
- 非static的const成员变量还可以在初始化列表中初始化
class Car {
public:
/// const 成员变量必须在类的内部初始化 【方式一】
/// ps:对比 static 成员变量,必须要在类外面初始化
const int m_price1 = 0;
/// 放在初始化列表中初始化 【方式二】
const int m_price2;
/// static 和 const 同时修饰成员变量
static const int m_price3 = 0;
Car() :m_price2(10) {
}
};
- const关键字写在参数列表后面,函数的声明和实现都必须带const
- 内部不能修改非static成员变量
- 内部只能调用const成员函数、static成员函数
- 非const成员函数可以调用const成员函数
- const成员函数和非const成员函数构成重载
- 非const对象(指针)优先调用非const成员函数
- const对象(指针)只能调用const成员函数、static成员函数
class Car {
public:
void run() const;
Car() {}
};
void Car::run() const;