2009-10-01 7 views
3

Lorsqu'une sous-classe remplace la méthode d'une baseclass, toutes les surcharges de la baseclass ne sont pas disponibles dans la sous-classe. Afin de les utiliser, il faut ajouter une ligne using BaseClass::Method; dans la sous-classe.Utilisation de toutes les surcharges de la classe de base

Existe-t-il un moyen rapide d'ignorer les surcharges de la baseclass pour TOUTES les méthodes surchargées? (ne pas avoir besoin de spécifier explicitement using ... pour chaque méthode)

Répondre

6

Non. Cela n'est possible qu'avec une déclaration using et cela ne fonctionne qu'avec les méthodes individuelles.

+2

Je tiens à souligner 'l'aide declaration'. C'est le mot-clé pour rechercher plus de détails, car 'using 'est utilisé dans plusieurs contextes différents en C++. – gimpf

0

Vous pouvez accéder à la méthode de classe de base, en spécifiant explicitement la portée de la classe lorsque vous voulez appeler la méthode ...

par exemple

class Base{ 
public: void foo(){} 
}; 

class Derived : public Base { 
public: void foo(int){} 
}; 

int main() 
{ 
    Derived d; 
    *d.Base::foo();* // like this 
} 

Questions connexes