9.5 const参数

优质
小牛编辑
130浏览
2023-12-01

你也许注意到了,函数after和addTime的参数都是传递引用。这俩函数是纯函数,不修改接受的参数值,因此我也可以传值。

传值的好处是调用函数和被调用函数都进行了适当的封装--其中一方的修改不可能影响另一方,除非影响了返回值。

另一方面,传引用由于避免了参数的复制,往往更高效。除此之外,C++有一个优秀的特性叫做const,它能使引用参数和值参数一样安全。

If you are writing a function and you do not intend to modify a parameter, you can declare that it is aconstant reference parameter. The syntax looks like this: 如果你要编写一个函数,并不打算修改其参数,你就可以声明一个常量引用参数。语法如下:

void printTime (const Time& time) ...
Time addTime (const Time& t1, const Time& t2) ...

上面代码只包含了函数的首行。如果你告诉编译器你不打算修改参数,这种语法可以起到提醒作用。如果你试图改变参数,编译器会报错,至少会告警。