Tip21:宁以pass-by-reference-to-const替换pass-by-valuue
1、内置类型以及STL的迭代器和函数对象可以pass-by-value(可以假设其并不昂贵)
2、其余类型pass-by-reference-to-const
原因:
1、时间耗费昂贵:pass-by-value会调用类的复制构造函数,创建对象的副本,调用结束时,调用析构函数。
2、对象切割(slicing):当以基类型为形参的函数,传入实参为继承子类型对象时,pass-by-value时会copy该对象,但是调用的是基类型的构造函数,造成对象切割(slicing)。
Pass-by-Reference优化指南
本文探讨了在C++中使用引用传递(const引用)代替值传递的方法及其原因。重点介绍了为何对于非内置类型及非STL迭代器和函数对象,采用const引用传递能够避免不必要的复制构造和析构开销,并防止对象切割问题。

被折叠的 条评论
为什么被折叠?



