J'ai la classe suivante:
class risc { // singleton
protected:
static unsigned long registers[8];
public:
unsigned long operator [](int i)
{
return registers[i];
}
};
comme vous pouvez le voir, j'ai implémenté l'opérateur de crochets pour "obtenir".
Maintenant, je voudrais l'implémenter pour le réglage, à savoir: risc[1] = 2
.
Comment ceci peut être fait?
Essaye ça:
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];}
};
Vous devez renvoyer une référence de votre operator[]
Afin que l'utilisateur de la classe l'utilise pour définir la valeur. La signature de la fonction serait donc unsigned long& operator [](int i)
.