读书笔记MoreEffectiveC++(22)

本文探讨了C++中运算符重载的几种形式,特别是运算符的赋值形式相较于独立形式的优势。作者建议同时提供两种形式以满足不同场景的需求,并强调在追求性能时考虑使用运算符的赋值形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

考虑用运算符的赋值形式(op=)取代其单独形式(op)
1.就C++来说,operator+、operator=和operator+=之间没有任何关系,因此如果你想让这三个operator同时存在并具有你所期望的关系,就必须自己实现它们。
2.、总的来说operator 的赋值形式比其单独形式效率更高,因为单独形式要返回一个新对象,从而在临时对象的构造和释放上有一些开销。operator 的赋值形式把结果写到左边的参数里,因此不需要生成临时对象来容纳operator 的返回值。
3.提供operator 的赋值形式的同时也要提供其标准形式,允许类的客户端在便利与效率上做出折衷选择
4.未命名的对象在历史上比命名对象更容易清除,因此当我们面对在命名对象和临时对象间进行选择时,用临时对象更好一些。它使你耗费的开销不会比命名的对象还多,特别是使用老编译器时,它的耗费会更少。
5.,但是主要的一点是operator的赋值形式(operator+=)比单独形式(operator+)效率更高。做为一个库程序设计者,应该两者都提供,做为一个应用程序的开发者,在优先考虑性能时你应该考虑考虑用operator赋值形式代替单独形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值