重载括号操作符来获取和设置
我有以下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)
。