sencillos - sobrecarga de operadores relacionales en c++
Operadores de soporte de sobrecarga[] para obtener y establecer (2)
Debe devolver una referencia de su operator[]
para que el usuario de la clase lo use para establecer el valor. Entonces la firma de la función sería unsigned long& operator [](int i)
.
Tengo la siguiente clase:
class risc { // singleton
protected:
static unsigned long registers[8];
public:
unsigned long operator [](int i)
{
return registers[i];
}
};
Como puede ver, he implementado el operador de corchetes para "obtener".
Ahora me gustaría implementarlo para la configuración, es decir: risc[1] = 2
.
¿Cómo puede hacerse esto?
Prueba esto:
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];}
};