Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class instrument
- {
- int cena;
- public:
- virtual void dzwiek()
- {
- cout<<"Nieokreslony brzdek!\n";
- }
- };
- class trabka: public instrument
- {
- public:
- void dzwiek()
- {
- cout<<"Tra-ta-ta!\n";
- }
- };
- class beben: public instrument
- {
- public:
- void dzwiek()
- {
- cout<<"Bum-bum-bum!\n";
- }
- };
- class fortepian: public instrument
- {
- public:
- void dzwiek()
- {
- cout<<"Plim-plim-plim!\n";
- }
- };
- //#include <"instrume.h">
- void muzyk (instrument &powierzony_instrument);
- int main()
- {
- instrument jakis_instrument;
- trabka zlota_trabka;
- fortepian steinway_giseli;
- beben moj_werbel;
- cout<<"Zwykle wywolanie funkcji składowych na rzecz obiektow\n";
- jakis_instrument.dzwiek();
- zlota_trabka.dzwiek();
- steinway_giseli.dzwiek();
- moj_werbel.dzwiek();
- //--------------------------------------------------------------
- cout<< "wywolanie funkcji na rzecz obiektu pokazywanego \n"
- "wskaznikiem instrumentu\n";
- instrument *wskinstr; //wskażnik do pokazywania obiektów klasy instrument
- // ustawienie wskaznika
- // Wskaźnik do klasy bazowej może występować jako wskaźnik do obiektu
- // dowolnej klasy pochodnej
- wskinstr = &jakis_instrument;
- wskinstr->dzwiek();
- wskinstr = &zlota_trabka;
- wskinstr->dzwiek();
- wskinstr = &steinway_giseli;
- wskinstr->dzwiek();
- wskinstr = &moj_werbel;
- wskinstr->dzwiek();
- cout << "podobne zachowanie jest także w stosunku do referencji\n";
- muzyk(jakis_instrument);
- muzyk(zlota_trabka);
- muzyk (steinway_giseli);
- muzyk (moj_werbel);
- }
- void muzyk (instrument &powierzony_instrument)
- {
- powierzony_instrument.dzwiek();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement