引用返回就返回一个“实体”,一般用到的地方就是引用传一个对象,再引用返回,比如cout对operator<<的重载:
ostream& operator<<(ostream& out,myType &data);
这样之后,cout<<a;它返回的同样是ostream&型,于是就可以继续使用,于是cout<<a<<b;就OK了。
再举个例子:
int& incc(int& a,int b)
{
a=a+b;
return a;
}
main()
{
int i=1;
incc(i,1);//i=2
++(incc(i,1));//i=4
incc(incc(i,1),1);//i=?
}
要注意的就是局部变量不能引用返回,因为函数结束后引用的对象已经不存在了。
int& incc(int& a,int b)
{
a=a+b;
return a;
}
main()
{
int i=1;
incc(i,1)+=2;
}
incc(i,1)后i=3,返回值为引用,即i,可以看成i+=2,故最后i=5。