C++ const 的3个核心作用

  1. 修饰变量:定义常量,变量值不可修改

cpp

const int a = 100;

a = 200; // 编译报错,不能修改

  • 作用:防止意外修改,增加代码可读性;编译期检查,比 #define 宏更安全(有类型信息)。
  1. 修饰指针(区分 const int* / int* const )
  • const int* p :指向的内容不可改,指针本身可以改

  • int* const p :指针本身不能改(地址固定),指向内容可以改

  1. 修饰类的成员函数(const成员函数,C++特有)

cpp

class Test{

public:

void func() const{

// 函数内部,不能修改类的成员变量

}

};

作用:承诺这个成员函数不会修改对象的数据,只能读取成员。const对象只能调用const成员函数。

额外补充:

  1. 修饰函数形参: void fun(const string &s)

用const引用,避免拷贝,同时保证函数内不会修改传入参数,保护实参。

一句话总结:

const的本质:给编译器承诺,这个东西只读,禁止修改,编译器帮我们做检查。

相关推荐
论文复现现场1 小时前
8卡 A100 服务器哪里租?NVLink、RDMA 与 NCCL 验收指南
linux·服务器·php·分布式训练·rdma·nvlink·nccl
小黄人软件1 小时前
粘贴助手C++版 支持 Windows 7 / 10 / 11 不会出现缺少api-ms-win-core-path-11-1-0.dll
开发语言·c++·windows
派小心.1 小时前
多端数据分析平台的漏斗可以跨端搭建吗?5 步搭出跨端转化漏斗
大数据·运维·服务器·前端·数据分析
有毒的教程1 小时前
Dev-C++ 避免爆栈(Stack Overflow)完整方案
c++·算法·深度优先
程序员老陆1 小时前
从汇编层面理解 C++ 多线程
开发语言·c++·程序设计
在所不辞兄1 小时前
刚性问题误差容限设置技巧
深度学习·神经网络·算法·机器学习
IOT-Power1 小时前
模板方法 + 策略模式
开发语言·c++
啊啊啊啊啊!!!!2 小时前
unordered_map和unordered_set的使用
算法
java_nnnn2 小时前
LeetCode刷题双指针(快乐数+盛最多水的容器)Java
算法·leetcode·职场和发展