Effective_C++:21、尽可能使用const

21、尽可能使用const

1、const的作用

const关键字的作用就是表示某个对象不应该被修改。若某值应该保持不变,就应该明确指出来,告诉编译器和其他程序员这个值不应该被改变,而编译器也会严格遵守这个值不能被改变的规则。

const的使用范围很广。

1.可以修饰全局变量、局部变量、static变量、类内的static与非static变量,使之为常量。

2.可以修饰指针。在*前是表示指针指向的对象不能被改变,在*后是指指针本身不能被改变,也可以同时表示指针本身以及其指向的对象都是常量。

3.用于函数声明中。可以修饰函数的返回值、入参,若是类的成员函数还可用于修饰整个函数,const对象只能调用const成员函数。

2、为何尽可能使用const

1.const修饰变量与指针时,编译器可以保证该值不会被意外的改变。若没有const关键字,值有可能被改变,即使他不应该改变,但编译器与其他程序员可能不知道,给代码的维护工作带来额外的负担。

2.const用于函数声明时,修饰返回值防止其返回值用于左值。修饰入参时防止函数内部改变入参的值。而修饰整个函数时,有两种解释:bitwise constness(位常量论)认为只要函数不修改对象的所有非static数据成员,即是const函数(通常的解释,编译器通常支持)。conceptual constness(概念常量论)认为只要不被clients检测到,可以修改某些位。

3、mutable

mutable关键字用来修饰,解放const限制,使得其可以被改变,即使是在const函数中。若不支持mutable,则只能依靠const_cast<>()类型转换来实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值