Je n'ai pas été en mesure de trouver une réponse qui se rapporte spécifiquement à ma question. C'est un peu un cas "étrange" en termes de ce que j'ai vu. J'ai donc une classe Child2
qui hérite de Child1
qui hérite à son tour de la Parent
. Le Parent
n'a pas de constructeur.erreur: type 'classe' n'est pas une base directe de 'classe'
Voici comment je déposséderont
Child1.h:
class Child1 : virtual public Parent
C'est la fonction que je veux appeler du constructeur de Child2
:
void Child1::foo(unsigned int i)
{
// ...
}
Child2
Child2::Child2() : Child1()
{
foo(10);
}
Il n'y a pas de fonctions appelées foo()
dans Child2
donc il ne devrait pas y avoir d'ambiguïté si je comprends bien.
Cependant, je rencontre cette erreur:
Child2.cpp: In constructor ‘Child2::Child2()’: Child2.cpp:12:28: error: type ‘Child1’ is not a direct base of ‘Child2’ Child2::Child2() : Child1()
constructeur de Child1
travaille, donc je l'ai laissé sortir. Je ne suis pas certain que ce soit important dans ce cas.
Vous avez omis beaucoup qui peut être important dans ce cas. Vous devez fournir un [mcve]. Après tout, si vous ne savez pas quel est le problème, comment savez-vous que ce que vous avez omis n'est pas ce dont les autres ont besoin pour vous aider? – Peter
Veuillez partager la déclaration de la fonction 'foo'. – MKR