为什么流运算符 return 在 C++ 中引用?
Why do stream operators return references in C++?
我知道索引运算符实现通常 return 引用以便可以设置和检索值,但为什么要使用流?
因此您可以将它们链接在一起。
cout << "hello" << "how are you";
之所以可行,是因为 cout << "hello"
returns 对 cout 的引用,以便 << "how are you"
知道将自己放在那里。
大多数运营商,例如 +=
,也这样做。
流不支持复制或赋值,因此任何传递或returns流必须使用指针或引用。您不能在指针上使用重载运算符(不取消引用它),因为它们会尝试将内置运算符应用于指针本身。
因此,返回引用是支持运算符链接的唯一选择。
流不支持复制或赋值,因为它们没有持久状态。就其本质而言,传递给它们的数据只是缓冲而不是保留。流的全部意义在于将其内容刷新到其他内容,同时在它为空时阻止接收端的程序执行。
我知道索引运算符实现通常 return 引用以便可以设置和检索值,但为什么要使用流?
因此您可以将它们链接在一起。
cout << "hello" << "how are you";
之所以可行,是因为 cout << "hello"
returns 对 cout 的引用,以便 << "how are you"
知道将自己放在那里。
大多数运营商,例如 +=
,也这样做。
流不支持复制或赋值,因此任何传递或returns流必须使用指针或引用。您不能在指针上使用重载运算符(不取消引用它),因为它们会尝试将内置运算符应用于指针本身。
因此,返回引用是支持运算符链接的唯一选择。
流不支持复制或赋值,因为它们没有持久状态。就其本质而言,传递给它们的数据只是缓冲而不是保留。流的全部意义在于将其内容刷新到其他内容,同时在它为空时阻止接收端的程序执行。