首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

函数返回值(该函数替值返回)赋值给引用变量

2012-09-25 
函数返回值(该函数为值返回)赋值给引用变量见如下示例代码:class A{int a}int fun_int( ){int areturn

函数返回值(该函数为值返回)赋值给引用变量
见如下示例代码:
class A
{
int a;
};

int fun_int( )
{
int a;
return a;
}

A fun_cls()
{
A a;
return a;
}

int main( )
{
int & a = fun_int();//该句编译出错:error C2440: 'initializing' : cannot convert from 'int' to 'int &'
A & b = fun_cls();//该句编译通过。  

return 0;
}

为什么针对int和class两种类型,有不同的结果呢?
求高手解答。

[解决办法]
你的编译不够标准,应该都报错. fun_int() 和fun_cls() 都是右值表达式,引用只能有左值初始化。
好像ms c++有这样的问题。

[解决办法]
返回值只是个临时变量(常量)

const int &a = fun_int();

热点排行