前言
const是C++中用得非常频繁的一个关键字,但是如果你不使用这个关键字,对程序的运行结果可能影响不大,那么,我可以不使用const吗?
一开始,拒绝使用const的最大原因可能是认为这个关键字比较鸡肋,因为它不会对程序产生实质影响,而且很繁琐,变量加上const关键后只能调用const类型的函数,极不方便。
但是为了安全,推荐使用const,这是一个良好的习惯,坚持下去的结果是你的代码将变得更加健壮,当然你也可以不使用const,只不过当代码量到一定程度后,你的代码可能会变得比较脆弱,而且随着量级的一步步升高,存在的隐患也会一点点增加。
如果哪天出现了一些难缠的bug,你可能会开始反思自己的代码为什么那么脆弱,到时候你可能会发现多写一些const能让你更加方便的排查问题。
大部分难缠的问题都和内存有关系,如果再加上多线程,可能会是一场噩梦。C/C++中存在很多未定义的行为,一个拥有几十个线程的程序,其中一个线程的内存写入或者释放出了问题,可能会造成随机的任意一个线程发生崩溃,如果每次崩溃的位置都随机,难度可想而知(你会怀疑整个程序到处都是bug,但其实可能只有一处微小的bug)。
const是解决这些问题的一个小部件,它提供了一种约束,让问题能够提前暴露出来,也要求程序员能够严格的去对成员函数进行区分,另外