mirror of
https://github.com/CnTransGroup/EffectiveModernCppChinese.git
synced 2024-12-25 20:30:21 +08:00
parent
7559edafc3
commit
b25b7f7642
@ -267,7 +267,7 @@ private:
|
||||
|
||||
可以看到这将会通向何方。在调用链中,每个函数都使用传值,因为“只多了一次移动的开销”,但是整个调用链总体就会产生无法忍受的开销,通过引用传递,调用链不会增加这种开销。
|
||||
|
||||
跟性能无关,但总是需要考虑的是,按值传递不像按引用传递那样会收到切片问题的影响。这是C++98的事,在此不在详述,但是如果要设计一个函数,来处理这样的形参:基类**或者任何其派生类**,你肯定不想声明一个那个类型的传值形参,因为你会“切掉”传入的任意派生类对象的派生类特征:
|
||||
跟性能无关,但总是需要考虑的是,不像按引用传递,按值传递会受到切片问题的影响。这是C++98的事,在此不在详述,但是如果要设计一个函数,来处理这样的形参:基类**或者任何其派生类**,你肯定不想声明一个那个类型的传值形参,因为你会“切掉”传入的任意派生类对象的派生类特征:
|
||||
|
||||
```cpp
|
||||
class Widget { … }; //基类
|
||||
|
Loading…
Reference in New Issue
Block a user