如何用a + b + c等多个参数重载运算符?

use*_*701 1 c++ operator-overloading

我可以操作class + class(例如我可以做日期+日期),但任何人都可以解释我怎样才能上课+课+课?C++不允许我用2个参数定义运算符.

Jam*_*nze 6

那是因为一般没有这样的运营商.
a + b + c(a + b) + c.首先a + b,然后将结果添加到c.

编辑:

如果有问题的对象非常大,那么在表达式中创建临时表a + b + c太昂贵了,你可以谷歌搜索模板表达式; 基本思想是,operator+除了返回一个表达式节点之外什么都不做,这个节点可以在以后作为完整表达式的一部分进行评估.