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

不能返回局部变量的引用,该如何解决

2012-04-22 
不能返回局部变量的引用class A{...}....ostream& operator (ostream& os,const A object){...os....

不能返回局部变量的引用
class A
{...
};
....

ostream& operator <<(ostream& os,const A object)
{...
os<<....
...
return os;
}

C++有条标准:不能返回局部变量的引用,为什么此处可以返回os的引用,os也是局部变量呀?

[解决办法]
os 不是局部变量,而是 调用<<时的 第一个参数的引用
[解决办法]

探讨
而是 调用<<时的 第一个参数的引用

[解决办法]
这个os是函数的引用型参数,因此在退出函数之后生命周期不会结束。不被称为局部变量。
如果是ostream& operator <<(ostream os,const A object),这个os才是局部变量。

探讨

os 不是局部变量,而是 调用<<时的 第一个参数的引用

[解决办法]
探讨
class A
{...
};
....

ostream&amp; operator <<(ostream&amp; os,const A object)
{...
os<<....
...
return os;
}

C++有条标准:不能返回局部变量的引用,为什么此处可以返回os的引用,os也是局部变量呀?

[解决办法]
ostream& operator <<(ostream& os,const A object)
os不是局部变量,是个引用入参,所以可以返回。
[解决办法]
你返回的是os,不是os的引用
[解决办法]
ostream& operator <<(ostream& os,const A object)
os不是局部变量,是个引用入参,所以可以返回。

热点排行