何时使用const
- const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值
- void function(const char* Var); //参数指针所指内容为常量不可变
- void function(const Class& Var);//引用参数在函数内不可以改变
- const修饰类对象表示该对象为常量对象,其中的任何成员都不能被修改。对于对象指针和对象引用也是一样
- const修饰类的成员变量,表示成员常量,不能被修改,同时它只能在初始化列表中赋值
- const修饰类的成员函数,则该成员函数不能改变成员变量,也不能修改/调用类中任何非const成员函数。一般写在函数的最后来修饰
为什么使用const
- 对数据的引用应该作为函数中的常量被隔离,以便函数不能改变它
- 应该将不修改相应实参的形参定义为const引用,这不仅仅是为了防止在函数中不小心修改了实参,还有更深层的含义
- 很多时候无需改变对象的内容,如比较大小的函数
- 使用引用而非常量引用会极大地限制函数所能接受的实参类型
参考:
C/C++中const关键字详解
https://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777416.html
C++中const的用法详细总结