c++中const关键字的用法详解_c++ const关键字作用总结

23次阅读

const用于声明不可变 对象 ,提升安全与性能;可修饰变量、 指针 、函数参数、 成员函数 及返回值;const 对象仅能调用 const 成员函数;mutable可突破 const 限制用于内部状态管理。

c++ 中 const 关键字的用法详解_c++ const 关键字作用总结

c++ 中,const关键字是一个非常重要的修饰符,用于声明不可变的变量、函数参数、成员函数和指针等。合理使用 const 不仅能提高代码的安全性和可读性,还能帮助编译器进行优化。下面从多个角度详细说明 const 的常见用法和作用。

1. const 修饰基本 数据类型 变量

用 const 修饰的变量表示其值不能被修改,必须在定义时初始化。

  • const int a = 10; // a 的值不能改变
  • int const b = 20; // 等价于上面的写法
  • // a = 30; 错误!不允许修改 const 变量

这种 常量 在编译期可能被直接替换为字面值,避免运行时开销。

2. const 与指针的结合使用

const 和指针结合时容易混淆,关键在于理解 const 修饰的是指针本身还是指针指向的内容。

立即学习C++ 免费学习笔记(深入)”;

  • const int* p; // 指针 p 指向一个常量,内容不可改,指针可变
  • int const* p; // 同上,等价写法
  • int* const p; // 指针 p 是常量,地址不可变,内容可改
  • const int* const p; // 指针和内容都不可变

记忆技巧:看 const 紧邻的是 * 还是变量名。若 const 在 * 左边,修饰内容;在 * 右边,修饰指针。

3. const 修饰函数参数

当函数参数为指针或引用时,使用 const 可以防止函数内部意外修改 实参

  • void print(const std::String& str); // 防止修改传入的 字符串
  • void func(const int* arr, int size); // 数组内容不会被修改

这对大型对象尤其重要,既能避免拷贝开销(用引用 / 指针),又能保证安全性。

4. const 成员函数

在类的成员函数后加上 const,表示该函数不会修改类的任何 成员变量(mutable 除外)。

c++ 中 const 关键字的用法详解_c++ const 关键字作用总结

BibiGPT- 哔哔终结者

B 站视频总结器 - 一键总结 音视频内容

c++ 中 const 关键字的用法详解_c++ const 关键字作用总结28

查看详情 c++ 中 const 关键字的用法详解_c++ const 关键字作用总结

  • class MyClass {
  •   int value;
  •   public:
  •   int getValue() const { return value;} // 不会修改成员
  • };

只有 const 成员函数才能被 const 对象调用。这有助于实现 接口 的只读访问。

5. const 与返回值

返回值为 const 类型时,通常用于防止不必要的赋值操作,尤其是重载 运算符 时。

  • const std::string operator+(const std::string&, const std::string&);
  • // 防止 (a + b) = c 这类非法操作

对内置类型返回 const 意义不大,但在自定义类型中可增强安全性。

6. const 对象与构造

const 对象一旦创建就不能修改,且只能调用 const 成员函数。

  • const MyClass obj;
  • obj.getValue(); // OK,getValue 是 const 函数
  • // obj.setValue(5); 错误!非 const 函数不能被 const 对象调用

const 对象必须通过 构造函数 初始化,之后所有成员进入只读状态。

7. mutable 关键字与 const 的例外

有时需要在 const 成员函数中修改某个成员变量,比如用于缓存或计数器,这时可用 mutable 修饰该成员。

  • class Logger {
  •   mutable int callCount;
  •   public:
  •   void log() const { ++callCount;} // 允许修改 mutable 成员
  • };

mutable 突破了 const 的限制,但应谨慎使用,仅用于逻辑上“不变”的对象中的内部状态管理。

基本上就这些。const 的核心思想是“承诺不修改”,它贯穿于变量、函数、对象等多个层面,是编写高质量 C ++ 代码的重要 工具。掌握 const 的用法,能让代码更安全、清晰,并提升性能。不复杂但容易忽略细节。

站长
版权声明:本站原创文章,由 站长 2025-10-25发表,共计1605字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources