C++中的标准输入流中,“在每个输入操作之后,流提取运算符返回一个当前对象的引用,就可以连续使用流

C++中的标准输入流中,“在每个输入操作之后,流提取运算符返回一个当前对象的引用,就可以连续使用流提取运算符”。我的问题就是返回引用与连续使用之间到底是什么关系?还有当前... C++中的标准输入流中,“在每个输入操作之后,流提取运算符返回一个当前对象的引用,就可以连续使用流提取运算符”。
我的问题就是返回引用与连续使用之间到底是什么关系?
还有当前对象指的是谁,是cin还是后面的那个?
展开
 我来答
兔子和小强
2015-12-22 · TA获得超过6946个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1441万
展开全部

当前对象指的是【流提取运算符】。你返回了流的引用,那么就可以连续地调用流提取运算符。

比如,你实现了下面函数:

istream & operator >> (istream &in, A &a){    // A是个类
    ...
    return in;
}

那么就可以进行如下调用:

A a, b, c;
operator >>( operator >>( operator >>(cin, a), b), c)

上面是完整的函数调用形式,简写是:

cin >> a >> b >> c;


再举个返回引用来达到连续调用的例子:

struct A {
int a;
A(): a(0){}
A &operator ()(){    // 返回了自身引用,因此可以连续调用()
cout << "Called " << ++a << " times" << endl;
return *this;
}
};

int main(){
A a;
a()()()();
}

// 将打印
Called 1 times
Called 2 times
Called 3 times
Called 4 times
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式