我一直在阅读类运算符并遇到以下示例:

class Array {
public:
     int& operator[] (unsigned i) { if (i > 99) error(); return data[i]; }
private:
     int data[100];
};

这是否意味着我可以用我想要的任何东西替换 [] ?例如,我可以使用括号吗?

另外, int& operator[] 中&符号的意义是什么?

稍微不那么重要的一点是,使用 int& operator [] 而不是 int& operator[] 在语法上是否正确?

最佳答案



不!并非所有运营商 can be overloaded



你可以,但你不应该。



这意味着您将 reference 返回给 int 变量。



两者没有区别。

10-07 19:12
查看更多