All pastes #551243 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-08 18:39 UTC
rendered paste body
#include <iostream>
#include <cstring>
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<<k.ZemiIme()<<k.Smetka();
}

bool operator<(Korisnik &k1, Korisnik &k2)
{
return (k1.Smetka()<k2.Smetka());
}


int main()
{
FizickoLice p("Viktor",1,1,1);
p+=1;
PecatiSmetka(p);
return 0;
}