Sobes.tech
Junior — Middle

Quels sont les avantages et inconvénients de l'utilisation de tables virtuelles?

sobes.tech IA

Réponse de l'IA

Les tables virtuelles (vtable) sont un mécanisme en programmation orientée objet utilisé pour implémenter le polymorphisme dynamique (fonctions virtuelles).

Avantages :

  • Permettent d'appeler les méthodes des classes dérivées via un pointeur ou une référence à la classe de base.
  • Offrent flexibilité et extensibilité du code.
  • Simplifient la maintenance et l'ajout de nouvelles classes sans modifier le code existant.

Inconvénients :

  • Légère baisse de performance due à un niveau supplémentaire d'appel indirect de fonctions.
  • Augmentation de la taille de l'objet en raison du pointeur vers la table virtuelle.
  • Complexité de mise en œuvre et de compréhension pour les débutants.

Exemple en C++ :

class Base {
public:
    virtual void foo() { std::cout << "Base" << std::endl; }
};

class Derived : public Base {
public:
    void foo() override { std::cout << "Derived" << std::endl; }
};

Base* b = new Derived();
b->foo(); // Appelle Derived::foo grâce à la vtable