日志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类型的复制构造函数为保护型,无法直接调用。

第二个则是因为需要改变实参的值。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务