#include <iostream>
using namespace std;
class Instrument
{
protected:
int cena;
int wiek;
public:
Instrument(): cena(0),wiek(0) {}
Instrument(int c, int w): cena(c),wiek(w) {}
virtual void graj() =0;
};
class Trabka: public Instrument
{
private:
int waga;
public:
Trabka(): Instrument(), waga(0) {}
Trabka(int c, int w, int wg): Instrument(c,w), waga(wg) {}
void graj()
{
cout<<"\nTrabienie na trabce wazacej "<<this->waga<<"kg kosztujacej "<<this->cena<<
"zl majacej "<<this->wiek<<" lat\n";
}
};
class Skrzypce: public Instrument
{
private:
string nazwa;
public:
Skrzypce(): Instrument(),nazwa("nieznane") {}
Skrzypce(int c, int w, string n): Instrument(c,w), nazwa(n) {}
void graj()
{
cout<<"\nSkrzypienie na skrzypcach "<<this->nazwa<<" kosztujacych "<<this->cena<<
"zl majacych "<<this->wiek<<" lat\n";
}
};
int main()
{
Instrument** tablica=new Instrument*[2];
tablica[0]=new Skrzypce(15000,150,"Stradi");
tablica[1]=new Trabka (20000,20,5);
tablica[0]->graj();
tablica[1]->graj();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgSW5zdHJ1bWVudAp7CnByb3RlY3RlZDoKICAgIGludCBjZW5hOwogICAgaW50IHdpZWs7CnB1YmxpYzoKICAgIEluc3RydW1lbnQoKTogY2VuYSgwKSx3aWVrKDApIHt9CiAgICBJbnN0cnVtZW50KGludCBjLCBpbnQgdyk6IGNlbmEoYyksd2llayh3KSB7fQogICAgdmlydHVhbCB2b2lkIGdyYWooKSA9MDsKfTsKCmNsYXNzIFRyYWJrYTogcHVibGljIEluc3RydW1lbnQKewpwcml2YXRlOgogICAgaW50IHdhZ2E7CnB1YmxpYzoKICAgIFRyYWJrYSgpOiBJbnN0cnVtZW50KCksIHdhZ2EoMCkge30KICAgIFRyYWJrYShpbnQgYywgaW50IHcsIGludCB3Zyk6IEluc3RydW1lbnQoYyx3KSwgd2FnYSh3Zykge30KICAgIHZvaWQgZ3JhaigpCiAgICB7CiAgICAgICAgY291dDw8IlxuVHJhYmllbmllIG5hIHRyYWJjZSB3YXphY2VqICI8PHRoaXMtPndhZ2E8PCJrZyBrb3N6dHVqYWNlaiAiPDx0aGlzLT5jZW5hPDwKICAgICAgICAgICAgInpsIG1hamFjZWogIjw8dGhpcy0+d2llazw8IiBsYXRcbiI7CiAgICB9Cn07CgpjbGFzcyBTa3J6eXBjZTogcHVibGljIEluc3RydW1lbnQKewpwcml2YXRlOgogICAgc3RyaW5nIG5hendhOwpwdWJsaWM6CiAgICBTa3J6eXBjZSgpOiBJbnN0cnVtZW50KCksbmF6d2EoIm5pZXpuYW5lIikge30KICAgIFNrcnp5cGNlKGludCBjLCBpbnQgdywgc3RyaW5nIG4pOiBJbnN0cnVtZW50KGMsdyksIG5hendhKG4pIHt9CiAgICB2b2lkIGdyYWooKQogICAgewogICAgICAgIGNvdXQ8PCJcblNrcnp5cGllbmllIG5hIHNrcnp5cGNhY2ggIjw8dGhpcy0+bmF6d2E8PCIga29zenR1amFjeWNoICI8PHRoaXMtPmNlbmE8PAogICAgICAgICAgICAiemwgbWFqYWN5Y2ggIjw8dGhpcy0+d2llazw8IiBsYXRcbiI7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIEluc3RydW1lbnQqKiB0YWJsaWNhPW5ldyBJbnN0cnVtZW50KlsyXTsKICAgIHRhYmxpY2FbMF09bmV3IFNrcnp5cGNlKDE1MDAwLDE1MCwiU3RyYWRpIik7CiAgICB0YWJsaWNhWzFdPW5ldyBUcmFia2EgKDIwMDAwLDIwLDUpOwogICAgdGFibGljYVswXS0+Z3JhaigpOwogICAgdGFibGljYVsxXS0+Z3JhaigpOwogICAgcmV0dXJuIDA7Cn0=