Evo molio bih molio kakvu pomoc oko ovog zadatka.
ZADATAK:
Nacrtajte hijerarhiju klasa koje reprezentiraju slijedece tipove vozila: automobil, avion, bicikl, brod, kamion, tegljac (uvedite po potrebi apstraktne klase na odgovarajuca mjesta u hijerarhiji). Napisite defnicije pripadnih klasa pricemu u svakoj klasi neka je defnirana virtualna funkcija double nosivost() (u implementaciji funkcije iskoristite polimorzam).
a) Napisite globalnu funkciju koja za dane objekte koje dobiva u polju racuna njihovu ukupnu nosivost.
b) Napisite funkciju koja prima vezanu listu objekata te racuna njihovu ukupnu nosivost.
Sad ovdje me najviše me zbunjuje a) i b) dio zadatka i to sto objekti koji se dobivaju moraju biti spremljeni u polje/listu, a znam to da se radi o static funkcijama i da bi funkciju pod a) trebalo navest kao friend u baznoj klasi.
Cijenim bilo kakvu pomoc i svaka pomoc je dobrodosla =)
Evo sto za sad imam:
#include <iostream>
#include <list>
using namespace std;
class Vozilo{
protected:
double n;
public:
void postaviNosivost(double x){n=x;}
virtual double nosivost()=0;
};
class Avion : public Vozilo{
double nosivost(){return n;}
};
class Brod : public Vozilo{
double nosivost(){return n;}
};
class Automobil : public Vozilo{
double nosivost(){return n;}
};
class Bicikl : public Vozilo{
double nosivost(){return n;}
};
class Kamion : public Vozilo{
virtual double nosivost(){}
};
class Tegljac : public Kamion{
double nosivost(){return n;}
};
int main() {
Avion A;
Tegljac T;
Vozilo *a = &A, *t=&T;
a->postaviNosivost(5);
cout<<a->nosivost()<<endl;
t->postaviNosivost(7);
cout<<t->nosivost()<<endl;
system("pause");
return 0;
}