1.3尽可能使用const

在函数声明式中使用const可以防止用户错误的使用。

同时在自定义类型中也是如此,要尽量与内置类型兼容。


const修饰成员函数(常成员函数)

作用:

  1. 明确了哪个函数可以改动对象内容。

  1. 通过const成员函数,来处理const修饰的对象。

//C++中常成员函数与非常成员函数可以构成重载,具体调用根据对象类型是否为const来进行区别调用,

[]运算符重载,最好返回&使得返回值可以被再次修改,否则tb[]只可读,不可写。

  • bitwise constness:

成员函数不更改对象内任意一个bit。

  • logical constness:

某些情况下允许在常成员函数下,对成员变量进行修改。

使用mutable修饰符,可以释放掉non-static成员变量的const约束,使得在const成员函数中,也可以对含有mutable修饰的成员变量进行修改。


”运用const成员函数,实现其non-const孪生兄弟“

对于常成员函数造成的重载,可以通过非常版本对另一个调用,来减少代码重复。

  1. 先通过*this将对象变为常对象,以便调用常成员函数版本。

  1. 返回值去常

其中非常对象转换为常对象是安全行为(安全转型),因此使用static_cast。

去常行为则只能由const_cast完成。

反之则十分危险!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值