日志16
关于运算符重载的补充
istream & operator >>(istream& in,Student &u)
{
string m;
int a,b,c;
cin>>m>>a>>b>>c;
u={m,a,b,c};
return in;
}
其中出现了三个“&”
“operator前的&表示返回值就是使用原来的对象,而不是再复制一个新的对象。意义在于,在重载如>>,<<这样的运算符时,有时需要进行连续操作,如“cin>>a>>b>>c;”这时就需要返回同一个cin。
“istream”后的&和“Student”后的&都是引用,第一个是因为istream类型的复制构造函数为保护型,无法直接调用。
第二个则是因为需要改变实参的值。


查看5道真题和解析