C++ 就像在其他OOP语言一样,当你定义一个新class,也就定义了一个新type。身为C++程序员,你的许多时间主要用来扩张你的类型系统。这意味着你不只是class设计者,还是type设计者。重载函数和操作符,控制内存的分配和归还,定义对象的初始化和终结等都在你的手上。因此你应该带着和“语言设计者当初设计语言内置类型时”一样的谨慎来研讨class的设计。
宁以 pass-by-reference-to-const 替换 pass-by-value
reference 往往以指针实现出来,因此pass by reference 通常意味着传递的是指针。因此如果你有个对象属于内置类型pass by value方式可能被选择。规则的改变取决于你使用哪一部分c++
尽量以pass by reference to const 替换 pass by value 。前者通常比较高效,并可避免切割问题。