为什么流运算符在C++中返回引用

Why do stream operators return references in C++?

本文关键字:返回 引用 C++ 运算符 为什么      更新时间:2023-10-16

我知道索引运算符实现通常会返回引用,以便可以设置和检索值,但是为什么流呢?

所以你可以把它们链接在一起。

cout << "hello" << "how are you";

工作是因为cout << "hello"返回对 cout 的引用,以便<< "how are you"知道将自己放在那里。

大多数运算符,例如 += ,也这样做。

流不支持复制或分配,因此传递或返回流的任何内容都必须使用指针或引用。您不能在指针上使用重载运算符(而不取消引用它),因为它们会尝试将内置运算符应用于指针本身。

因此,返回引用是支持运算符链接的唯一选择。

流不支持复制或分配,因为它们没有持久状态。就其本质而言,传递到它们中的数据只是缓冲而不是保留。流的全部意义在于将其内容刷新到其他内容中,同时在接收端为空时阻止程序执行。