effective_c++条款20,用pass-by-reference-to-const替换pass-by-value

Posted Kooing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了effective_c++条款20,用pass-by-reference-to-const替换pass-by-value相关的知识,希望对你有一定的参考价值。

pass-by-value

void f(A a);

1)导致复制是浪费资源

2)多态是导致对象切割

所以我们使用

void f(const A& a)

上面的话针对class,不针对基本类型,函数对象(重载运算符),stl的迭代器。

基本类型:本来就很小,直接复制。

函数对象:暂时不清楚

stl迭代器:暂时不清楚

以上是关于effective_c++条款20,用pass-by-reference-to-const替换pass-by-value的主要内容,如果未能解决你的问题,请参考以下文章

读书笔记_Effective_C++_条款十五:在资源类管理类中提供对原始资源的访问

读书笔记_Effective_C++_条款二十一:当必须返回对象时,别妄想返回其reference

读书笔记_Effective_C++_条款二十五: 考虑写出一个不抛出异常的swap函数

读书笔记_Effective_C++_条款十七:以独立语句将new产生的对象置入智能指针

读书笔记_Effective_C++_条款二十三:宁以non-membernon-friend替换member函数

读书笔记_Effective_C++_条款二十四: 若所有参数皆需类型转换,请为此采用non-member函数