c++ - 为什么返回类型引用输出流?

标签 c++ operator-overloading return-type ostream

我是 C++ 新手,正在学习运算符重载。现在在下面的代码中,除了对为什么返回类型是对输出流的引用?

有点困惑之外,我得到了所有内容

我们有以下枚举。

enum days{ SON, SAT, MON, TUE, WED, THRUS, FRI };

我们正在重载 << operator ,打印天数而不是数值 0、1、2 ...等等。

代码是:

ostream& operator <<(ostream &,const days &d)
{
 switch(d)
 {
  case SUN: out << "SUN"; break;
  case MON: out << "MON"; break;
  case TUE: out << "TUE"; break;
  case WED: out << "WED"; break;
  .....
  ... 
 }
 return out;
} 

最佳答案

why the return type is reference to output stream?

返回 ostream& 使得链接它成为可能,比如

std::cout << SON << SAT << MON << TUE << WED << THRUS << FRI;

顺便说一句:Output stream不应该(也不能)被复制,因此返回类型是引用(而不是按值)。

关于c++ - 为什么返回类型引用输出流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611620/

相关文章:

c++ - 最常见的内存/资源泄漏错误

c++ - 跨不同 C++ 程序的唯一类型标识符

c++ - 用于序列化/反序列化的标准 C++ 代码

c++ - 如何处理这种副作用?

c++ - 抽象类和派生类的输出运算符(<<)

java - MySQL 中 SUM 结果的数据类型

php - 在 PHP 中覆盖子类中的函数时更改返回类型?

c++ - 重载 *= 矩阵运算符 C++

c++ - 消除运算符重载中的临时变量

c - 错误: incompatible types for a function that returns float in C