C++中的标准输入流中,“在每个输入操作之后,流提取运算符返回一个当前对象的引用,就可以连续使用流
C++中的标准输入流中,“在每个输入操作之后,流提取运算符返回一个当前对象的引用,就可以连续使用流提取运算符”。我的问题就是返回引用与连续使用之间到底是什么关系?还有当前...
C++中的标准输入流中,“在每个输入操作之后,流提取运算符返回一个当前对象的引用,就可以连续使用流提取运算符”。
我的问题就是返回引用与连续使用之间到底是什么关系?
还有当前对象指的是谁,是cin还是后面的那个? 展开
我的问题就是返回引用与连续使用之间到底是什么关系?
还有当前对象指的是谁,是cin还是后面的那个? 展开
1个回答
展开全部
当前对象指的是【流提取运算符】。你返回了流的引用,那么就可以连续地调用流提取运算符。
比如,你实现了下面函数:
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询