SagiLow SagiLow - 3 months ago 19
C++ Question

C++ : 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?

Answer

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];}
};