8Fermer10
spectrasLe 03/05/2006 à 16:08
Les fonctions virtuelles interviennent lors de l'utilisation polymorphique d'un pointeur sur une classe de base.
Elles permettent d'appeler les fonctions redéfinies dans la classe dérivée à partir d'un pointeur sur la classe de base.

class Base {
    void a() {cout <<Base::a() <<endl;}
    virtual void b() {cout <<Base::b() <<endl;}
};

classe Derived : public Base {
    void a() {cout <<Base::a() <<endl;}
    virtual void b() {cout <<Base::b() <<endl;}
};

int main() {
    Base  *X = new Derived;
    X->a();    // Base::a()
    X->b();    // Derived::b()
}