条款20:最好使用pass-by-reference-to-const替换pass-by-value

  1. 避免复制构造函数和析构函数的调用开销。
  2. 避免对象切割问题(形参是基类而实参是派生类的情况下使用值传递之后函数得到的永远是基类)。
  3. 对于内置对象、函数对象,以及迭代器(例如STL)来说,使用值传递或许更为高效。这是在函数对象和迭代器都设计良好的情况下。
  4. 小型types都最好使用值传递吗?答案是否定的。即使非常小的类型,其copy构造函数也可能非常昂贵。而且,编译器对于内置类型和用户自定义类型的态度是非常不同的。这种情况下,我可通过引用传递的参数一定会被编译器优待(放进缓存器)。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容