在C/C++语言中,const关键字用于定义常量,表示某个变量的值在程序运行期间不能被修改。
定义常量
const关键字可以用来定义全局变量和局部变量,其值在初始化后不能被修改
const int MAX_VALUE = 100;
// MAX_VALUE = 200; // 错误:不能修改常量的值
保护指针和引用
const可以用于保护指针或引用所指向的数据,或者指针指向的对象,防止通过指针或引用修改数据
const int* ptr = &MAX_VALUE; // 指针指向的值不能被修改
// *ptr = 200; // 错误:不能通过指针修改值
int value = 10;
const int& ref = value; // 引用所绑定的值不能被修改
// ref = 20; // 错误:不能通过引用修改值
int a = 10;
int b = 20;
int * const ptr = &a; // ptr 是一个常量指针,指向 int 类型的变量 a
*ptr = 30; // 合法:可以通过 ptr 修改 a 的值
// ptr = &b; // 非法:不能修改 ptr 的指向,即不能让 ptr 指向 b
定义常量成员函数
const可以用于成员函数,表示该函数不会修改对象的状态,说明该函数不应该修改非静态成员,但这并不是十分可靠的,指针所指向的非成员对象值可能会被修改
class MyClass {
public:
void setValue(int v) { value = v; }
int getValue() const { return value; } // 常量成员函数
private:
int value;
};
定义常量对象
const可以用于定义常量对象,表示该对象的状态在创建后不能被修改
class MyClass {
public:
void setValue(int v) { value = v; }
int getValue() const { return value; } // 常量成员函数,不能修改对象状态
private:
int value;
};
const MyClass obj;
// obj.setValue(10); // 错误:不能调用非常量成员函数
cout << obj.getValue() << endl; // 正确:可以调用常量成员函数

1355

被折叠的 条评论
为什么被折叠?



