J'ai une hiérarchie :
class ICommand
{
public:
virtual void start() = 0;
};
class IExtendedCommand : public ICommand
{
public:
virtual void doSomethingElse() = 0;
};
class ConcreteCommand : public ICommand
{
public:
virtual void start() {};
}
class ExtendedConcreteCommand : public ConcreteCommand, public IExtendedCommand
{
public:
virtual void doSomethingElse() {};
}
Les objets ICommand et IExtendedCommand sont créés par factory.
Pour une raison quelconque, lorsque le compilateur dit que toutes les méthodes de ICommand sont pures dans ExtendedConcreteCommand...
Avez-vous une idée de la raison et de la manière de résoudre ce problème ?
PS : Oui, je suis en train de porter mon application Android vers C++/Qt (que je n'ai pas utilisé depuis 3 ans). En tout cas, j'aimerais savoir comment vous vous en sortiriez.
EDIT :
Ce que je suis en train de porter est une application de contrôle à distance pour MPC et VLC. L'idée est de créer des commandes qui peuvent être envoyées au lecteur via une usine. Factory renvoie un pointeur vers un objet qui implémente ICommand. Ainsi, en changeant les implémentations de la fabrique, différentes commandes peuvent être créées. ICommand déclare toutes les méthodes et signaux principaux. IExtendedCommand ajoute quelques informations génériques pour tous les joueurs. Donc, ce que j'aimerais faire, c'est instancier IExtendedCommand par le biais d'une fabrique, définir quelques propriétés et ensuite la lancer avec la méthode start(). J'aimerais également réutiliser la fonctionnalité de ConcreteCommand. Cela conduit au problème que j'ai décrit.