Informatică Programare

Exercitii rezolvate polimorfism virtual

Polimorfismul virtual în C++ permite apelarea funcției corecte a unui obiect la runtime, folosind pointeri sau referințe la clasa de bază. Exemplu: o funcție 'afiseaza()' poate avea implementări diferite în clase derivate.

Exercițiu rezolvat: Forme geometrice

  1. 1
    Definirea clasei de bază class Forma { public: virtual void aria() { cout << "Aria formei"; } };
  2. 2
    Crearea claselor derivate class Cerc : public Forma { public: void aria() override { cout << "Aria cercului: π*r^2"; } }; class Patrat : public Forma { public: void aria() override { cout << "Aria pătratului: l^2"; } };
  3. 3
    Utilizarea polimorfismului Forma* f1 = new Cerc(); Forma* f2 = new Patrat(); f1->aria(); // Afișează: Aria cercului: π*r^2 f2->aria(); // Afișează: Aria pătratului: l^2

Reguli importante

  • Funcții virtuale Declară funcția în clasa de bază cu 'virtual' și opțional 'override' în derivată.
  • Pointeri la bază Folosește pointeri sau referințe la clasa de bază pentru a apela funcțiile derivate.
  • Destructor virtual Dacă clasa de bază are funcții virtuale, destructorul trebuie să fie virtual.

Testează polimorfismul cu mai multe obiecte pentru a vedea cum se aleg automat implementările corecte.

Mai multe din Programare