IO 的位移操作符
运算符 << 和 >> 通常用作写和读运算符:
std::ostream重载<<将变量写入底层流(例如:std::cout)std::istream重载>>以从底层流读取变量(例如:std::cin)
他们这样做的方式类似,如果你想在 class / struct 之外正常重载它们,除了指定参数不是同一类型:
- 返回类型是你想要通过引用传递的流(例如,
std::ostream),以允许链接(链接:std::cout << a << b;)。示例:std::ostream& lhs与返回类型相同rhs是你想要允许重载的类型(即T),由const&传递而不是性能原因的值(rhs无论如何都不应该改变)。示例:const Vector&。
例:
//Overload std::ostream operator<< to allow output from Vector's
std::ostream& operator<<(std::ostream& lhs, const Vector& rhs)
{
lhs << "x: " << rhs.x << " y: " << rhs.y << " z: " << rhs.z << '\n';
return lhs;
}
Vector v = { 1, 2, 3};
//Now you can do
std::cout << v;