运算符重载中运算符的组合

时间:2014-04-27 02:25:33

标签: c++

我需要在代码中组合运算符重载。

例如:

当我写x [i]时,它返回一个值,我知道这个。我需要知道的是,如何使运算符功能如此,如果它是单独的,它返回内部的值,如果它后面是等于(x [i] = val)它设置x [i]的值。 / p>

1 个答案:

答案 0 :(得分:1)

你误解了陈述x[i] = val中发生的事情。假设您的运算符重载如下所示:

item_type & operator[](int index);

然后[]运算符返回对item_type类型的某个对象的引用。因此,我们可以将x[i]替换为:

(item_type &) = val

=运算符因此应用于item_type &的值,而不是原始的x类型。如果item_type提供赋值运算符,则此方法有效。如果没有,那就没有。