重载括号操作符来获取和设置

我有以下class级:

class risc { // singleton protected: static unsigned long registers[8]; public: unsigned long operator [](int i) { return registers[i]; } }; 

你可以看到我已经实现了“获取”的方括号操作符。
现在我想实现它,即: risc[1] = 2

如何做呢?

尝试这个:

 class risc { // singleton protected: static unsigned long registers[8]; public: unsigned long operator [](int i) const {return registers[i];} unsigned long & operator [](int i) {return registers[i];} }; 

您需要从operator[]返回一个参考,以便class级的用户使用它来设置值。 所以函数签名将是unsigned long& operator [](int i)