RaymondHuang
RaymondHuang
发布于 2022-12-17 / 77 阅读
0
0

const关键字的使用

  1. 在类中,被const定义的属性,无论如何都不能被修改,并且要在类里事先声明或在默认构造函数内声明

  2. 在类中,被const修饰的函数,函数体内不能修改属性,但如果属性被mutable修饰,则不影响:

class Student {
public:
    int id;
    mutable int age;    
    const int hands = 2; // 事先声明

    Student() : hands(2) { // 默认构造函数内声明
        id = 1;
        age = 100;
    }

    void modify() const {
        id = 100; // id不可以改,但age因为是mutable的,突破了const的限制,所以可以改
        age = 18;
    }
};

    3. const修饰指针时:

int a = 1;
const int* c = &a; // 锁变量,地址可修改
int* const d = &a; // 锁地址,变量内容可修改
const int* const e = &a; // 两个都锁

    4. const修饰引用符号&时:

int a = 1;
const int& f = a;
f = 2; // 不可以修改

    5. const修饰对象的引用时,和上面一样,如果成员是const,必不能改,如果是mutable或默认,则可以修改。


评论