Informatică Programare
Polimorfism C++ explicatii 12a
Polimorfismul în C++ permite obiectelor de tipuri diferite să răspundă la același mesaj (apel de funcție) în moduri specifice. Este o caracteristică a programării orientate pe obiecte care se bazează pe moștenire și funcții virtuale. În clasa a 12-a, înveți cum să-l folosești pentru a scrie cod mai flexibil și reutilizabil.
Tipuri de polimorfism
- Polimorfism static (supraîncărcare) Se realizează prin supraîncărcarea funcțiilor sau operatorilor. Exemplu: o funcție 'suma' care poate primi doi int sau doi double.
- Polimorfism dinamic (suprascriere) Se bazează pe funcții virtuale și pointeri către clase de bază. Exemplu: o clasă 'Forma' cu funcția virtuală 'arie()', suprascrisă în 'Cerc' și 'Dreptunghi'.
- Polimorfism prin șabloane Folosește template-uri pentru a lucra cu tipuri generice. Exemplu: template <typename T> T maxim(T a, T b).
Exemplu practic cu polimorfism dinamic
- 1 Definește clasa de bază class Animal { public: virtual void sunet() { cout << "Sunet generic"; } };
- 2 Moștenește și suprascrie class Caine : public Animal { public: void sunet() override { cout << "Ham!"; } };
- 3 Folosește pointer către clasa de bază Animal* a = new Caine(); a->sunet(); // Afișează "Ham!" datorită polimorfismului.
Pentru bac, exersează scrierea de clase cu funcții virtuale și demonstrează cum un pointer de tipul clasei de bază poate apela metode ale claselor derivate.