2009-10-25 6 views
2

Je sais que certaines langues le permettent. Est-ce possible en C++?Existe-t-il un moyen d'appeler la méthode de classe de base d'un objet surchargée? (C++)

+0

Voulez-vous dire a) à partir de la classe dérivée ou b) d'une fonction pas dans les classes associées? –

+0

duplication possible de [C++: comment appeler une fonction de classe parent à partir de la fonction de classe dérivée?] (Http://stackoverflow.com/questions/357307/c-how-to-call-a-parent-class-function-from -derived-class-function) – outis

Répondre

5

Oui:

#include <iostream> 

class X 
{ 
    public: 
     void T() 
     { 
      std::cout << "1\n"; 
     } 
}; 

class Y: public X 
{ 
    public: 
     void T() 
     { 
      std::cout << "2\n"; 
      X::T();    // Call base class. 
     } 
}; 


int main() 
{ 
    Y y; 
    y.T(); 
} 
1

Oui, indiquez simplement le type de la classe de base.

Par exemple:

#include <iostream> 

struct Base 
{ 
    void func() { std::cout << "Base::func\n"; } 
}; 

struct Derived : public Base 
{ 
    void func() { std::cout << "Derived::func\n"; Base::func(); } 
}; 

int main() 
{ 
    Derived d; 
    d.func(); 
} 
2
class A 
{ 
    virtual void foo() {} 
}; 

class B : public A 
{ 
    virtual void foo() 
    { 
    A::foo(); 
    } 
}; 
Questions connexes