C++ 操作员过载疑问
我试着写一些操作符重载函数,特别是C++ 操作员过载疑问,c++,class,operator-overloading,operators,C++,Class,Operator Overloading,Operators,我试着写一些操作符重载函数,特别是如果你想链接操作符如果你想链接操作符返回一个引用可以链接操作符,比如 std::cout << e1 << e2; std::cout返回引用允许您链接操作符,如 std::cout << e1 << e2; std::cout返回一个引用而不是void,这样就可以像 out << obj1 << obj2 << obj3; 返回一个引用而不是void,这样就可以像 out
如果你想链接操作符如果你想链接操作符返回一个引用可以链接操作符,比如
std::cout << e1 << e2;
std::cout返回引用允许您链接操作符,如
std::cout << e1 << e2;
std::cout返回一个引用而不是void
,这样就可以像
out << obj1 << obj2 << obj3;
返回一个引用而不是void
,这样就可以像
out << obj1 << obj2 << obj3;
你可以写一些东西,比如cout你可以写一些东西,比如cout-See,这一点现在很清楚了,甚至没有考虑到链接的可能性。谢谢你,现在清楚了,我甚至没有考虑过链接的可能性。谢谢你,(obj1=obj2)+obj3
不应该是(obj1=obj2)=obj3
?无论如何,谢谢你,这是helpful@luigi我只是选择了operator+
(代码中没有定义),而不是operator=
。没关系。将=
链接在一起可能更常见。哦,好吧,虽然你的意思是@songyuanyao在下面写的。难道(obj1=obj2)+obj3
不应该是(obj1=obj2)=obj3
?无论如何,谢谢你,这是helpful@luigi我只是选择了operator+
(代码中没有定义),而不是operator=
。没关系。不过,将=
链接在一起可能更常见。哦,好吧,尽管你的意思与@songyuanyao在下面写的类似。
out << a << b;
(out << a) << b;
^^^^^^^^^^
lhs has to be a stream
Custom obj1, obj2, obj3;
(obj1 = obj2) + obj3 ... // assign obj2 to obj1 and work with that...
std::cout << e1 << e2;
out << obj1 << obj2 << obj3;
obj1=obj2=obj3;