Professional Documents
Culture Documents
10 ComparatorVirtual
10 ComparatorVirtual
class Pers
{
private:
double salariu;
protected:
int marca;
public:
friend class MaiMic;
friend class Alfabetic;
string nume;
virtual double calcSal() { cout << "\ncalcSalPers"; return salariu; }
Pers(int m = 0, string n = "Noname", double s = 2000.)
: marca(m), nume(n), salariu(s)
{
cout << "\nCons Pers";
}
~Pers() {/* cout << "\nDestructor Pers";*/ }
friend ostream& operator<<(ostream& ost, Pers& p)
{
ost << p.marca << "\t" << p.nume << "\t" << p.salariu;
return ost;
}
};
class Comparator
{
public:
virtual bool operator()(Pers&, Pers&) = 0;
};
int main()
{
Pers p1(100, "Blanculescu Aurel", 3560.), p2, p3 = p1;
Pers vp[] =
{
Pers(100, "Sutasu Aurel", 10100.), Pers(400, "Patru Ioana",10400.),
Pers(300, "Traistaru T", 10300.)
};
int n = 3;
cout << "\nSort crescator";
MaiMic mm;
sort(vp, n, mm);
for (int i = 0; i < n; i++)
cout << "\n" << vp[i];