关于c++中的引用返回
来源:百度知道 编辑:UC知道 时间:2024/05/11 17:24:19
弄得不是很清楚..对于 返回值是引用的函数..要怎么调用?能不能同时有例子和文字说明?谢谢
#include "stdafx.h"
#include <iostream>
using namespace std;
int& fun(int &data)
{
//...
return data;
}
int main(int argc, char* argv[])
{
int data = 34;
fun(data)=35;平常我们处理有返回值的函数基本就是这样处理
比如: int s=max(10,20);<这个是因为函数真真的产生了值,所以可以这样操作>
而你看看这里: fun(data)=35;竟然是把一个数赋给一个函数的返回值
如果你看了我下面的一段说法,你就能明白,因为fun函数是返回的一个引用.可以把它完全的当作为data,所以就有data=35;<这个当然是合法的>
cout<<"data="<<data<<endl;
return 0;
}
这个就更能说明问题,千万别把返回的引用当作返回的引用的哪个值.
因为返回的引用只是返回了一个形态.当这个形态能代表一个值的时候,
它就有值,否则就没有<所以不能返回局部变量的引用>
楼上的文字,加这里的程序:
#include <iostream>
using namespace std;
int& fun(int &data)
{
//...
return (int &)data;
}
int main(int argc, char *argv[])
{
int data = 34;
int &i = fun(data);