Статья: Производные Классы

m1.next = &e1;

e1.next = &m2;

m2.next = &e2;

e2.next = 0;

}

Поскольку менеджер является служащим, manager* может использоваться как employee*. Однако служащий необязательно является менеджером, поэтому использовать employee* как manager* нельзя.

Функции Члены

Просто структуры данных вроде employee и manager на самом деле не столь интересны и часто не особенно полезны, поэтому рассмотрим, как добавить к ним функции.

Например:

class employee {

char* name;

// ...

public:

employee* next;

void print();

// ...

};

class manager : public employee {

// ...

public:

void print();

// ...

};

Надо ответить на некоторые вопросы. Как может функция член производного класса manager использовать члены его базового класса employee? Как члены базового класса employee могут использовать функции члены производного класса manager? Какие члены базового класса employee может использовать функция не член на объекте типа manager? Каким образом программист может повлиять на ответы на эти вопросы, чтобы удовлетворить требованиям приложения?

Рассмотрим:

void manager::print()

{

cout << " имя " << name << "\n";

// ...

}

К-во Просмотров: 582
Бесплатно скачать Статья: Производные Классы