11.2.2 参数传递准则

当给函数传递参数时,人们习惯上是通过常量引用来传递。虽然最初看起来似乎仅是出于效率考虑(通常在设计和装配程序时并不考虑效率),但像本章以后部分介绍的,这里将会带来很多的危险。拷贝构造函数需要通过传值方式来传递对象,但这并不总是可行的。

这种简单习惯可以大大提高效率:传值方式需要调用构造函数和析构函数,然而如果不想改变参数,则可通过常量引用传递,它仅需要将地址压栈。

事实上,只有一种情况不适合用传递地址方式,这就是当传值是惟一安全的途径,否则将会破坏对象时(不想修改外部对象,这不是调用者通常期望的)。这是下一节的主题。