Mei*_*eir 4 c++ operator-overloading operators operator-keyword
如果我重载了operator +和operator =,我仍然需要重载operator + =这样的东西才能工作:
MyClass mc1, mc2;
mc1 += mc2;
Run Code Online (Sandbox Code Playgroud)
jal*_*alf 26
是的,您还需要定义它.
然而,一个常见的技巧是定义operator+=,然后operator+根据它实现这样的事情:
MyClass operator+ (MyClass lhs, const MyClass& rhs){
return lhs += rhs;
}
Run Code Online (Sandbox Code Playgroud)
如果你反过来这样做(使用+来实现+ =),你会在+ =运算符中得到一个不必要的复制操作,这可能是对性能敏感的代码的问题.