我需要在代码中组合运算符重载。
例如:
当我写x [i]时,它返回一个值,我知道这个。我需要知道的是,如何使运算符功能如此,如果它是单独的,它返回内部的值,如果它后面是等于(x [i] = val)它设置x [i]的值。 / p>
答案 0 :(得分:1)
你误解了陈述x[i] = val
中发生的事情。假设您的运算符重载如下所示:
item_type & operator[](int index);
然后[]
运算符返回对item_type
类型的某个对象的引用。因此,我们可以将x[i]
替换为:
(item_type &) = val
=
运算符因此应用于item_type &
的值,而不是原始的x
类型。如果item_type
提供赋值运算符,则此方法有效。如果没有,那就没有。