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;