2012-04-22 7 views
0

Possible en double:
Is there a way to call an object's base class method that's overriden? (C++)Comment appeler la méthode de classe de base à partir de la classe dérivée en C++?

constructeur Première question appelle super() en Java même que l'initialisation du constructeur super classe première en C++ comme.

sub() : super(){} 


est-il possible d'appeler la méthode super classe en C++ comme en Java

ex.

public sub(){ 
super.someMethod(); 

}

+0

double possible de [C++: Comment appeler une fonction de classe parente de la fonction de classe dérivée] (http://stackoverflow.com/q/357307/), [Existe-t-il un moyen d'appeler la méthode de classe de base d'un objet qui est redéfinie? (C++)] (http://stackoverflow.com/q/1619769/) – outis

Répondre

6

Pour appeler le constructeur de base d'une classe, vous l'appelez comme BaseClassName(args). Par exemple:

class A 
{ 
public: 
    A() { } 
    virtual void Foo() { std::cout << "A's foo" << std::endl; } 
}; 

class B : public A 
{ 
public: 
    B() : A() { } 
    void Foo(); 
}; 

Pour appeler la version de classe de base d'une méthode, vous BaseClassName::MethodName:

void B::Foo() 
{ 
    std::cout << "B's foo" << std::endl; 
    A::Foo(); 
} 
Questions connexes