Informatică Programare

Polimorfismul in C++ explicat

Polimorfismul în C++ permite obiectelor de tipuri diferite să răspundă la același mesaj, adică la apelul unei metode, în moduri specifice. Se realizează prin funcții virtuale și pointeri sau referințe către clasa de bază.

Mecanisme de polimorfism

  • Funcții virtuale Declarate cu 'virtual' în clasa de bază, pot fi suprascrise în clasele derivate pentru comportament dinamic.
  • Legare dinamică La runtime, se decide ce funcție să fie apelată, în funcție de tipul real al obiectului.
  • Pointeri la clasă de bază Permit stocarea adreselor obiectelor derivate și apelarea metodelor virtuale corespunzătoare.

Exemplu practic

  1. 1
    Definirea claselor class Forma { public: virtual void deseneaza() { cout << "Desenez o forma"; } }; class Cerc : public Forma { public: void deseneaza() override { cout << "Desenez un cerc"; } };
  2. 2
    Utilizare polimorfică Forma* f = new Cerc(); f->deseneaza(); // Afișează: Desenez un cerc (datorită funcției virtuale)
  3. 3
    Destructor virtual Adaugă 'virtual ~Forma() {}' pentru a evita scurgeri de memorie la ștergerea obiectelor derivate.

Folosește funcții virtuale pentru a implementa polimorfism și asigură destructori virtuali în ierarhii cu alocare dinamică.

Mai multe din Programare