Comment appeler la fonction parente d’une classe dérivée à l’aide de C++ ? Par exemple, j’ai une classe appelée , et une classe appelée
qui est dérivé de parent. Au sein de chaque classe, il y a une `` fonction. Dans la définition de la fonction d’impression de l’enfant, je voudrais faire un appel aux parents de fonction d’impression. Comment pourrais-je aller à faire cela ?
Réponses
Trop de publicités?Je vais prendre le risque d'énoncer une évidence, vous appelez la fonction, si elle est définie dans la classe de base, il est automatiquement disponible dans la classe dérivée (à moins d' private
).
Si il y a une fonction avec la même signature dans la classe dérivée, vous pouvez lever l'ambiguïté en ajoutant la base du nom de la classe suivi de deux-points base_class::foo(...)
. Vous devriez noter que, contrairement à Java
et C#
, C++
ne pas avoir un mot-clé pour "la classe de base" (super
ou base
) depuis C++
supporte l'héritage multiple qui peut conduire à l'ambiguïté.
class left {
public:
void foo();
};
class right {
public:
void foo();
};
class bottom : public left, public right {
public:
void foo()
{
//base::foo();// ambiguous
left::foo();
right::foo();
}
};
Par ailleurs, vous ne peut pas dériver directement à partir de la même classe que deux fois depuis qu'il n'y aura aucun moyen de se référer à l'une des classes de base sur les autres.
class bottom : public left, public left { // Illegal
};