C++ const 限定符的全面介绍(一)https://developer.aliyun.com/article/1436961
3. const 应用到函数中
定义
函数参数、返回值或成员函数使用 const。
语法
void func(const type arg); // 参数是常量 const type func(); // 返回常量 type func() const; // 常量成员函数
特点
保护函数参数和返回值,确保对象成员函数不修改对象状态。
作用
防止函数修改输入数据,保证成员函数不改变对象状态。
使用场景
当不希望函数更改数据或对象状态时。
注意事项
常量成员函数不能修改任何成员变量。
代码示例
#include <iostream> using namespace std; class MyClass { public: MyClass(int val) : value(val) {} int getValue() const { return value; } // 常量成员函数 private: int value; }; void printValue(const MyClass& obj) { cout << "Value: " << obj.getValue() << endl; } int main() { MyClass obj(10); printValue(obj); return 0; }
运行结果
Value: 10
总结
确保数据和对象状态的安全性和稳定性。
4. const 在类中的用法
定义
在类定义中使用 const 修饰成员变量和成员函数。
语法
class MyClass { public: MyClass(int val) : constMember(val) {} int getConstMember() const { return constMember; } // 常量成员函数 private: const int constMember; // 常量成员变量 };
特点
增强类封装,确保数据安全。
作用
定义不可变的成员变量和不改变对象状态的成员函数。
使用场景
设计不可变成员或保证成员函数的安全性。
注意事项
常量成员变量必须在构造函数初始化列表中初始化。
代码示例
#include <iostream> using namespace std; class MyClass { public: MyClass(int v) : constMember(v) {} int getConstMember() const { return constMember; } private: const int constMember; }; int main() { MyClass obj(10); cout << "Const member: " << obj.getConstMember() << endl; return 0; }
运行结果
Const member: 10
总结
在类中使用 const 提高成员变量和函数的安全性和稳定性。
5. const 修饰类对象
定义
定义不可改变的类对象。
语法
const ClassName object;
特点
常量对象只能调用其常量成员函数。
作用
确保对象状态不被更改。
使用场景
需要只读访问对象时。
注意事项
常量对象不能调用非常量成员函数。
代码示例
#include <iostream> using namespace std; class MyClass { public: MyClass(int v) : value(v) {} int getValue() const { return value; } private: int value; }; int main() { const MyClass constObject(10); cout << "Const object value: " << constObject.getValue() << endl; return 0; }
运行结果
Const object value: 10
总结
使用 const 修饰类对象可确保对象的完整性和不变性,适合只读场景。