#include #include using namespace std; class Korisnik { private: char *ime; int pretplata; int minuti; public: Korisnik(char *i="",int pret=0,int min=0) { ime=new char[strlen(i)+1]; strcpy(ime,i); pretplata=pret; minuti=min; } virtual ~Korisnik() { delete []ime; } virtual float Smetka() = 0; char* ZemiIme() { return ime; } Korisnik& operator+=(int m) { minuti+=m; return *this; } Korisnik& operator=(const Korisnik &k) { if (&k!=this) { delete []ime; ime=new char[strlen(k.ime)+1]; strcpy(ime,k.ime); pretplata=k.pretplata; minuti=k.minuti; } return *this; } Korisnik& operator++() { minuti++; return *this; } Korisnik operator++(int) { Korisnik tmp(*this); minuti++; return tmp; } }; float Korisnik::Smetka() { return pretplata+minuti; } class FizickoLice: public Korisnik { private: int dopolna; public: FizickoLice(char *i="",int pret=0,int min=0,int dop=0):Korisnik(i,pret,min) { dopolna=dop; } float Smetka() { return Korisnik::Smetka()+dopolna; } }; class PravnoLice:public Korisnik { private: float koeficient; public: PravnoLice(char *i="",int pret=0,int min=0,int koef=0.0):Korisnik(i,pret,min) { koeficient=koef; } float Smetka() { return Korisnik::Smetka()*koeficient; } }; void PecatiSmetka(Korisnik &k) { cout<