1
我是初学者,想要学习C++,所以可能我的问题很基本。考虑下面的代码片段:重载时返回对局部变量的引用<<
class pounds
{
private:
int m_p;
int m_cents;
public:
pounds(){m_p = 0; m_cents= 0;}
pounds(int p, int cents)
{
m_p = p;
m_cents = cents;
}
friend ostream& operator << (ostream&, pounds&);
friend istream& operator>>(istream&, pounds&);
};
ostream& operator<< (ostream& op, pounds& p)
{
op<<p.m_p<<"and "<<p.m_cents<<endl;
return op;
}
istream& operator>>(istream& ip, pounds& p)
{
ip>>p.m_p>>p.m_cents;
return ip;
}
这个编译和似乎工作,但我没有返回一个局部变量的引用?提前致谢。
不,参考已经在参数和参考的东西之外的功能,所以一切都很好。 – Xeo
引用本身不是对象。是否返回对本地的引用取决于原始引用的引用。在你的情况下,没关系,因为'op'和'ip'指的是来自呼叫站点的对象。 – jrok