===函数重载就是函数多态===
- 完成相同的工作,但使用不同的参数列表;
- 使用上下文来确定要使用的重载函数版本(主要是根据特征标)
(类型引用和类型被编译器视为同一个特征标)
(重载区分const 和 非const)
重载引用参数
void staff(double & ra); //matches modifiable lvalue
void staff(const double & ra); //matches rvalue,const lvalue
void stove(double & r1); //matches modifiable lvalue
void stove(const double & r2); //matches const lvalue
void stove(double && r3); //matches rvalue
这可以根据参数是左值、const还是右值来定制函数的行为;
double x =55.5;
const double y=32.0;
stove(x); //calls stove(double &)
stove(y); //calls stove(const double &)
stove(x+y);//calls stove(double &&)
如果没有定义stove(double&&),stove(x+y)将调用stove(const double &).