关于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);