C++中的参数传递
在一本书里看到如下内容:
参数传递总结:
1. 按指调用适用于不被函数更改的小对象
2. 按常量引用调用适用于不被函数更改的大对象
3. 引址调用适用于所有可以被函数更改的对象
我的问题是:
1. 什么是按常量引用调用
2. 向函数传递参数时,如果这个参数是一个复杂类型,比如是类,那么如果将实参复制给形参会导致效率低下,
那么编译器是怎样处理这种情况呢???
求各位大侠赐教!!
[解决办法]
f(const &x);
那就不复制,引用或传地址。
[解决办法]
1. f(const A& a)
2. 像上面的写法(传引用的方式)就不会产生副本,传入函数内部的就是对象a本身,而不是其副本。其它任何方式,比如f(A a)、f(const A a)、f(A* a)或者f(const A* a)都会产生副本。简言之,传引用不会产生副本,其它情况都会产生副本。
[解决办法]