Overload bracket operators [] to get and set
I have the following class: class risc { // singleton protected: static unsigned long registers[8]; public: unsigned long operator [](int i) { return registers[i]; } }; as you can see I've implemented the square brackets operator for "getting". Now I would like to implement it for setting, i.e.: risc[1] = 2 . How can it be done? Try this: 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];} }; You need to return a reference from your operator[] so