Overload bracket operators [] to get and set
-
14-06-2021 - |
Question
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?
Solution
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];}
};
OTHER TIPS
You need to return a reference from your operator[]
so that the user of the class use it for setting the value. So the function signature would be unsigned long& operator [](int i)
.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow