C++ I / O的位移位运算符
示例
运算符<<和>>通常用作“写”和“读”运算符:
std::ostream重载<<到写变量基础流(例如:std::cout)
std::istream重载>>到从底层流读取到一个变量(例如:std::cin)
如果要在class/struct之外“正常”重载它们,则它们的执行方式类似,不同之处在于,指定参数的类型不同:
返回类型是您要从其重载(例如,std::ostream通过引用传递)的流,以允许链接(链式:)std::cout<<a<<b;。例:std::ostream&
lhs将与返回类型相同
rhs是您要允许从中进行重载的类型(即T),const&出于性能原因而不是传递值(rhs无论如何都不应更改)。范例:constVector&。
例:
//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}; //现在你可以做 std::cout << v;