2 wuwo37 wuwo37 于 2013.10.13 14:36 提问

在C++中,很简单的引用返回值函数,可以返回两个引用的相加和吗

#include
using namespace std;
void main()
{
int& sum(int &a,int& b);
int a=1,b=2;

sum(a,b)+=1;

}
int &sum(int & a,int & b)
{
return a+b;
}

在VC6.0中编译出错error C2440: 'return' : cannot convert from 'int' to 'int &'
请大神解释下原因。
为什么不能用两个引用的相加和来作为返回值呢

1个回答

wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.18 23:48
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
函数返回值是否使用引用类型的问题:理解引用、返回值
在《对象更有用的玻璃罩——常引用》一文中,介绍了对象作为函数的参数时,推荐使用引用的形式。并且,如果实际参数的值不允许改变时,声明为常引用更佳。   在《第8周-任务1-方案3-复数类中运算符重载(与实数运算)》中,又讨论了一个问题,结论是:在类似复数加法运算符重载这样的函数,形式参数用作为常引用最佳,如: friend Complex operator + (const Complex
函数返回值 返回引用
先看看该链接讨论的问题作为热身。http://topic.csdn.net/u/20070616/13/2a6a1739-1a69-4829-a90f-fdb19a61e095.html   函数返回值和返回引用是不同的 函数返回值时会产生一个临时变量作为函数返回值的副本,而返回引用时不会产生值的副本,既然是引用,那引用谁呢?这个问题必须清楚,否则将无法理解返回引用到底是个什么概
引用之函数返回值 函数的返回值为引用类型《三》
一: 可以把函数定义为引用类型,这时函数的返回值即为某一变量的引用(别名),因此,它相当于返回了一个变量,所以可对其返回 值进行赋值操作。这一点类同于函数的返回值为指针类型。 由于函数调用返回的引用类型是在函数运行结束后产生的,所以函数不 能返回自动变量和形参。返回的变量的引用,这个变量必须是全局变量或静态局部变量,即存储在静态区中的变量。  看个例子: /* * main.cpp
C++:引用作为返回值
  例如,下面的程序是有关引用返回的4种形式:     //*********************     //**   ch9_6.cpp  **     //*********************     #include     float temp;     float fn1(float r)     {      temp = r*r*3.14;   
“引用作为函数参数”与 “引用作为函数返回值”
“引用作为函数参数”与 “引用作为函数返回值” 一、引用作为函数参数 作为函数参数时引用有两种原因: 1、在函数内部会对此参数进行修改 2、提高函数调用和运行效率   关于第一点,都知道C++里提到函数就会提到形参和实参。如果函数的参数实质就是形参,不过这个形参的作用域只是在函数体内部,也就是说实参和形参是两个不同的东西,要想形参代替实参,肯定有一个值的传递。函
函数返回值为引用可以做左值使用
#include using namespace std; /* 若返回静态变量或全局变量 可以成为其他引用的初始值 即可作为右值使用,也可作为左值使用 */ int getA() { static int a =10 ; a ++ ; return a; } int* getA2() { static int a =20 ; a++; return &a; } int& g
引用作为函数返回值(对函数赋值)
今天在看STL的RB-tree时,发现了一个很奇怪的赋值方式,形式如下: root() = 0; leftmost() = _M_header; rightmost() = _M_header; 这三个函数原型为:link _type& root() const { return (link _type&) header->parent; }link _type& leftmost() c
c/c++返回值为指针、引用时注意的地方
int *getint() { int p=10; return &p;//提示返回临时变量 } int *getint2() { int *p=(int*)malloc(sizeof(int)*10); *p=10; return p; }int &getint3() { int p=10; return p;//提示返回临时变量 } int &
实战c++中的string系列--函数返回局部变量string(引用局部string,局部string的.c_str()函数)
当函数返回字符串的时候,我们可以定义返回string和string&。1写一个返回string引用的函数std::string & TestStringReference() { std::string loal_str = "holy shit"; return loal_str; }这个函数当然是错误的,编译器会提示我们: 返回局部变量或临时变量的地址: loal_str 即
当函数中返回值为值,指针,引用时,是如何带出和接收的?
首先我们需要知道的是,当返回一个值,指针,引用时(小于八个字节均可以由寄存器带出)需要注意的是,由于举例,下面的例子中返回了局部变量的地址,而这是有风险的,不能返回临时的局部的地址或引用。仅供思路分析的参考1.返回内置类型的值,引用,指针,分别用指针,值,引用接收的情况。1)通过寄存器返回一个值 2)通过寄存器带出,返回一个指针。 3)返回引用时需要解引用,返回指针时只需要返回一个地