【发布时间】:2015-01-29 18:33:40
【问题描述】:
我知道索引运算符实现通常返回引用,以便可以设置和检索值,但为什么要流?
【问题讨论】:
我知道索引运算符实现通常返回引用,以便可以设置和检索值,但为什么要流?
【问题讨论】:
因此您可以将它们链接在一起。
cout << "hello" << "how are you";
之所以有效,是因为 cout << "hello" 返回对 cout 的引用,以便 << "how are you" 知道将自己放在那里。
大多数运算符,例如+=,也这样做。
【讨论】:
+=?
+=。
operator+ 绝对不应该返回引用。
流不支持复制或赋值,因此任何传递或返回流的东西必须使用指针或引用。您不能在指针上使用重载运算符(不取消引用它),因为它们会尝试将内置运算符应用于指针本身。
因此,返回引用是支持运算符链接的唯一选择。
【讨论】: