修饰变量
- 内置类型
// 局部变量
const int a = 0;
// 类的成员变量
class A {
private:
const int a; // 常对象成员只能在初始化列表中赋值
public:
//A() : a(0) {}; // OK
//A(int value) : a(value) {}; // OK
A() {
a = 0; // ERROR
}
};
- 指针类型
// 指针指向的内容不可变
const int *p = 0;
int p1;
*p = 1; // ERROR
p = &p1; // OK
// 指针不可变
int* const p = 0;
int p1;
*P = 1; // OK
p = &p1; // ERROR
// 指针和指针指向的内容都不可变
const int * const p = 0;
int p1;
*P = 1; // ERROR
p = &p1; // ERROR
- 引用类型
// 以下两种方式 a 都是不可变的
int const &a = 0;
const int &a = 0;
- 类的对象
const Test t;
t.set(0); // set 必须为 const 函数
修饰函数
- 参数
参数根据需要运用 const
设定参数的不可改变类型。
- 返回值
返回值同”修饰变量“中描述,确定返回值的不可改变类型。
修饰类的成员函数
class A {
int getValue() const {
return 0;
}
};
Effective C++
尽可能使用 const
参考
https://interview.huihut.com/#/?id=const
https://www.runoob.com/w3cnote/cpp-const-keyword.html
https://blog.csdn.net/wangkai_123456/article/details/76598917