读书笔记MoreEffectiveC++(22)

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