Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

09 полиморфизм

.pdf
Скачиваний:
14
Добавлен:
27.03.2015
Размер:
216.35 Кб
Скачать

09 – 11

Worker::~Worker()

{

delete [] name; delete [] fam;

}

char * Worker::getName() { return name; }

char * Worker::getFam() { return fam; }

// оклад за неделю

09 – 12

class Boss: public Worker { float salary;

public:

Boss(char *, char *, float = 0.0); void setSalary(float);

float earnings(); void print();

};

09 – 13

Boss::Boss(char *n, char *f, float s): Worker(n, f)

{ setSalary(s); }

void Boss::setSalary(float s) { salary = s > 0 ? s : 0; }

float Boss::earnings() { return salary; }

09 – 14

void Boss::print()

{

cout << ”Администратор

<<getName() << ’ ’

<<getFam();

}

09 – 15

class Comm: public Worker {

// базовый оклад за неделю

float salary;

// процент комиссионных

float commission;

// объем продаж за неделю

float quantity;

09 – 16

public:

Comm(char *, char *, float = 0.0, float = 0.0, float = 0.0);

void setSalary(float); void setCommission(float); void setQuantity(float); float earnings();

void print(); };

09 – 17

Comm::Comm(char *n, char *f, float s, float c, float q): Worker(n, f)

{

setSalary(s);

setCommission(c);

setQuantity(q);

}

09 – 18

void Comm::setSalary(float s) { salary = s > 0 ? s : 0; }

void Comm::setCommission(float c) { commission = c > 0 ? c : 0; }

void Comm::setQuantity(float q) { quantity = q > 0 ? q : 0; }

09 – 19

float Comm::earnings()

{

return salary + commission * quantity / 100;

}

09 – 20

void Comm::print()

{

cout << ”Комиссионный служащий

<<getName() << ’ ’

<<getFam();

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]