我们在使用引用作为参数时,很多时候我们会以一个常量或者表达式作为参数返回给函数。这时程序运行是显示错误的。
举个例子:
#include <iostream>
using namespace std;
double cube (double a);
double refcube (double &ra);
int main(void)
{
double x = 3.0;
cout << cube(x);
cout << " = cube of " << x << endl;
cout << refcube(x);
cout << " = cube of " << x << endl;
return 0;
}
double cube (double a)
{
a *= a * a;
return a;
}
double refcube (double &ra)
{
return ra * ra * ra;
}
运行结果:
27 = cube of 3
27 = cube of 3
--------------------------------
Process exited after 0.09377 seconds with return value 0
请按任意键继续. . .
但是我们将cout << refcube(5);的参数改为常量5时,此时程序运行时错误的,如下图。