Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Polimorfizm - przykład użycia
- */
- #include <iostream>
- using namespace std;
- //Klasa Zwierze, po ktorej dziedziczą pozostałe
- class Zwierze {
- public: virtual void glos() = 0;
- };
- class Pies : public Zwierze
- {
- public: virtual void glos() {
- cout << "Hau! Hau!" << endl;
- }
- };
- class Kot : public Zwierze
- {
- public: virtual void glos() {
- cout << "Mial! Mial!" << endl;
- }
- };
- class Krowa : public Zwierze
- {
- public: virtual void glos() {
- cout << "Muu!" << endl;
- }
- };
- class Kon : public Zwierze
- {
- public: virtual void glos() {
- cout << "Ihaaa!" << endl;
- }
- };
- class Ptaszek : public Zwierze
- {
- public: virtual void glos() {
- cout << "Cwir! Cwir!" << endl;
- }
- };
- //Uniwersalna funkcja dzięki polimorfizomowi - może działać na każdej klasie pochodnej od klasy Zwierze
- //Jeżeli za jakis czas dodamy do programu klasę to ta funkcja nie ulegnie zmianie
- void dajGlos (Zwierze *pt2)
- {
- pt2 -> glos();
- }
- int main()
- {
- //Tworzenie obiektow
- Pies pies;
- Kot kot;
- Krowa krowa;
- Kon kon;
- Ptaszek ptaszek;
- //Wskaźnik polimorficzny typu abstrakcyjnego Zwierze
- Zwierze *pt;
- pt = &pies;
- dajGlos(pt);
- pt = &kot;
- dajGlos(pt);
- pt = &krowa;
- dajGlos(pt);
- pt = &kon;
- dajGlos(pt);
- pt = &ptaszek;
- dajGlos(pt);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement