Effective C++条款3 我可以不使用const?

前言

const是C++中用得非常频繁的一个关键字,但是如果你不使用这个关键字,对程序的运行结果可能影响不大,那么,我可以不使用const吗?
在这里插入图片描述

一开始,拒绝使用const的最大原因可能是认为这个关键字比较鸡肋,因为它不会对程序产生实质影响,而且很繁琐,变量加上const关键后只能调用const类型的函数,极不方便。

但是为了安全,推荐使用const,这是一个良好的习惯,坚持下去的结果是你的代码将变得更加健壮,当然你也可以不使用const,只不过当代码量到一定程度后,你的代码可能会变得比较脆弱,而且随着量级的一步步升高,存在的隐患也会一点点增加。

如果哪天出现了一些难缠的bug,你可能会开始反思自己的代码为什么那么脆弱,到时候你可能会发现多写一些const能让你更加方便的排查问题。

大部分难缠的问题都和内存有关系,如果再加上多线程,可能会是一场噩梦。C/C++中存在很多未定义的行为,一个拥有几十个线程的程序,其中一个线程的内存写入或者释放出了问题,可能会造成随机的任意一个线程发生崩溃,如果每次崩溃的位置都随机,难度可想而知(你会怀疑整个程序到处都是bug,但其实可能只有一处微小的bug)。

const是解决这些问题的一个小部件,它提供了一种约束,让问题能够提前暴露出来,也要求程序员能够严格的去对成员函数进行区分,另外

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值