J'ai deux classes de base et une classe qui hérite des deux classes de base. Les deux classes de base ont une fonction virtuelle avec la même signature, et je souhaite fournir différentes implémentations dans la classe dérivée à chaque fonction virtuelle.Comment choisir la classe de base lors de la substitution d'une fonction en C++?
class A{
virtual void f() = 0;
}
class B{
virtual void f() = 0;
}
class Derived:public A, public B{
void A::f() override{ // Error
...
}
void B::f() override{ // Error
...
}
}
Quelle est la bonne façon de procéder? (Je ne peux pas renommer la fonction virtuelle. En fait, les deux classes de base sont générées à partir de la même classe de modèle.)
Qu'est-ce que vous essayez de faire ...? Que serait la sémantique de 'derived-> f()'? –
La classe dérivée hérite des mêmes classes de modèle de mixage avec des arguments différents. La fonction f() est en fait une fonction comme update(), et j'ai besoin de définir différentes fonctions de mise à jour pour différents arguments. – eivour
Veuillez écrire un code qui représente honnêtement votre cas d'utilisation réel. Il n'y a aucun moyen de faire la compilation ci-dessus ni aucune sémantique significative. –