use*_*701 1 c++ operator-overloading
我可以操作class + class(例如我可以做日期+日期),但任何人都可以解释我怎样才能上课+课+课?C++不允许我用2个参数定义运算符.
那是因为一般没有这样的运营商.
a + b + c
是(a + b) + c
.首先a + b
,然后将结果添加到c
.
编辑:
如果有问题的对象非常大,那么在表达式中创建临时表a + b + c
太昂贵了,你可以谷歌搜索模板表达式; 基本思想是,operator+
除了返回一个表达式节点之外什么都不做,这个节点可以在以后作为完整表达式的一部分进行评估.