cpp_const_member - ShenYj/ShenYj.github.io GitHub Wiki

const成员

被const修饰的成员变量、非静态成员函数

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关键字写在参数列表后面,函数的声明和实现都必须带const
  • 内部不能修改非static成员变量
  • 内部只能调用const成员函数、static成员函数
  • 非const成员函数可以调用const成员函数
  • const成员函数和非const成员函数构成重载
  • 非const对象(指针)优先调用非const成员函数
  • const对象(指针)只能调用const成员函数、static成员函数
class Car {
public:

    void run() const;
    
    Car() {}
};

void Car::run() const;
⚠️ **GitHub.com Fallback** ⚠️