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 Definirea clasei de bază class Forma { public: virtual void aria() { cout << "Aria formei"; } };
- 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 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.