Tengo una clase base y clases que derivan de ella. La clase base Controllable
actúa como una interfaz para un bucle de entrada, y otras clases derivan de ella para obtener un lugar en ese bucle para obtener eventos como si se presionara una tecla.C++: ¿funciones virtuales que necesitan llamar al mismo código?
class Controllable{
public:
virtual void setActive(bool state) { m_active = state; }
virtual void input(Event & e) =0;
private:
bool m_active;
};
class Button : public Controllable{
public:
void setActive(bool state){ /*do extra work*/ m_active = state; }
void input(Event & e) override;
};
Desde los Button
clase aborda los acontecimientos desde una cola de eventos, poniéndolo al inactivo (que lo lleva fuera del circuito de entrada) puede provocar que se pierda eventos importantes como una clave siendo sin prensar, por lo que necesita adicional código para ponerlo en un estado amistoso inactivo si alguna vez vuelve a activarse más tarde.
Mi pregunta, ¿cuál es la mejor manera de asegurar que setActive
siempre tiene el efecto deseado de cambiar m_active
al estado correcto, mientras que al mismo tiempo, que no requiere que las clases derivadas para definir a menos que necesitan para fijar adicional código necesario?
Tienes ';' '}' después de las funciones, ver por ellos. –
Mr.TAMER - ¡arreglado! Tengo una picazón bonita; dedo –