有人可能希望用引用参数以避免拷贝用作实参的大型类对象,同时,又希望防止函数修改实参的值,如果引用参数不希望在函数内部被修改,那么把参数声明为const型是个不错的办法。
例子如下。
class Huge;
extern int foo_bar( Huge& )
int foo( const Huge & xx)
{
return foo_bar( xx );
}
编译器会报错,因为不能保证foo_bar()会不会改变参数x的值。这违反了foo()的参数的常量性。
可以改成如下:
extern int foo_bar( const Huge& );
extern int foo_bar( x );