c++ - 用两个类重载运算符 +=

标签 c++ operator-overloading overloading

我有两个类,我们称它们为AB。我在 A 类中重载了 operator+=。现在我想做这样的事情:

A += B + B + B

而且 B 类没有重载 operator+,这是一个问题,因为求值是从右到左的(它想添加所有 Bs 然后 += 结果到 A)。 有什么方法可以实现我的目标,而无需为 B 类实际重载 operator+

最佳答案

Is there any way to achieve my goal without actually overloading operator+ for class B?

一句话,没有

A::operator+=B 作为输入,因此如果您希望 A += B + B + B 起作用,您需要一种将 B 对象添加在一起以生成 += 可以作为输入的新 B 的方法,而这正是 operator+ 用于。

关于c++ - 用两个类重载运算符 +=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581321/

相关文章:

c++ - const 限定符 函数结束

c++ - 是 C++ * 运算符 "already overloaded?"

c++ - 为什么需要运算符重载?

c++ - 我很难理解这些关于检测整数溢出的评论

c++ - 这是指向指针的指针吗?

c++ - 如何按照 Google C++ 风格指南连接字符串文字?

java - 不允许在 Java 方法覆盖上使用父类(super class)型的原因是什么?

overloading - Cython 重载特殊方法?

Java 类型转换、对象类型和重载问题

python - 在 Raspberry PI 上构建时出现 OpenCV 错误