1,返回void类型
(1)函数结束时可以不使用return语句;
(2) return;
(3) return fun(); //其中fun()返回void类型
2,返回非引用类型
在调用函数的地方,将返回值复制给临时对象
3,返回引用类型
(1)在调用函数的地方,没有复制返回值,返回的是对象本身;
(2)千万不可以返回局部变量的引用。因为当函数调用结束后,局部变量不再存在;
(3)普通引用返回的是左值,可以对返回的值直接赋值
设有如下函数定义,
double &get_val(double (&arr)[10],size_t ix)
{
return arr[ix];
}
则
double d_arr[10] = {0,1,2,3,4,5,6,7,8,9};
cout << d_arr[3] << endl;
get_val(d_arr,3) = 17; //给函数返回值赋值
cout << d_arr[3] << endl;
分别打印出结果:
3
17
(4)如果不希望引用返回值被修改,则返回值应声明为const:
const double &get_const_val(double (&arr)[10],size_t ix)
{
return arr[ix];
}
这样给
get_const_val()的返回值赋值时会报错。
//error C3892: “d_arr”: 不能给常量赋值
get_const_val(d_arr,3) = 9;
cout << get_const_val(d_arr,3) << endl;