Ik heb de volgende klas:
class risc { // singleton
protected:
static unsigned long registers[8];
public:
unsigned long operator [](int i)
{
return registers[i];
}
};
Zoals je kunt zien, heb ik de Square Brackets-operator geïmplementeerd voor “Getting”.
Nu zou ik het willen implementeren voor het instellen, d.w.z.: risc[1] = 2
.
Hoe kan het worden gedaan?
Antwoord 1, Autoriteit 100%
Probeer dit:
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];}
};
Antwoord 2, Autoriteit 16%
U moet een referentie van uw operator[]
retourneren, zodat de gebruiker van de klas het gebruikt voor het instellen van de waarde. Dus de functiesignatuur zou zijn unsigned long& operator [](int i)
.