Mi proyecto GUI en Qt
tiene muchas clases de "páginas de configuración" que heredan directamente QWidget
.
Recientemente, me di cuenta de que todas estas clases comparten 2 espacios comunes ( loadSettings()
y saveSettings()
).
Respecto a esto, tengo dos preguntas:
- ¿Tiene sentido escribir una clase abstracta base intermedia (vamos a nombrarla
BaseConfigurationPage
) con estas dos ranuras como métodos puros virtuales? (Cada página de configuración posible siempre tendrá estos dos métodos, así que diría "sí") - Antes de hacer el gran cambio en mi código (si es necesario): ¿Qt admite ranuras puras virtuales? ¿Hay algo que deba tener en cuenta?
Aquí hay un ejemplo de código que describe todo:
class BaseConfigurationPage : public QWidget
{
// Some constructor and other methods, irrelevant here.
public slots:
virtual void loadSettings() = 0;
virtual void saveSettings() = 0;
};
class GeneralConfigurationPage : public BaseConfigurationPage
{
// Some constructor and other methods, irrelevant here.
public slots:
void loadSettings();
void saveSettings();
};
fuente
obj-ptr, member-func-ptr, obj-ptr, member-func-ptr
versión deconnect
, ninguna de sus ranuras debe declararse como tal.Solo ranuras en BaseConfigurationPage
fuente