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