Fix item41 (#163)

原翻译易让人误解为“按值传递不会有切片问题”
This commit is contained in:
v1nh1shungry 2023-08-24 13:07:41 +08:00 committed by GitHub
parent 7559edafc3
commit b25b7f7642
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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