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

Lect05

.pdf
Скачиваний:
6
Добавлен:
06.02.2016
Размер:
411.08 Кб
Скачать

Другиеразновидностидрузей

void MyClass2::FriendMethod(MyClass classParam) {

classParam.x = 3; classParam.y = 4;

}

void FriendFunction(MyClass classParam)

{

classParam.x = 3; classParam.y = 4;

}

Выводы

Друзьяпозволяютобеспечитьклассу, функцииилиметодудоступковсейобласти дружественногоимкласса.

Использованиедрузейоправдано,еслиэто даетсущественнуюоптимизацию.

Друзьяэтоотносительнобезопасное нарушениеинкапсуляциикласса.

Анарушатьинкапсуляциюплохо!

Наследование

Наследование- этоупорядочивание абстракций,расположениеихпоуровням.

Производныйклассобладаетвсемнабором свойствиметодовбазовогокласса,оних

унаследовал.

Производныйкласс,всвоюочередь,может служитьбазовымдлядругихклассов, поэтомуиерархияможетбытьскольугодно глубокой,исодержатьпрямыхикосвенных потомковбазовогокласса.

Обозначениенаследования

Млекопитающее

Отношениеобобщения

Заяц Медведь

Основнойвидиерархии:«is-a»

Принятоговорить,чтобазовыйкласс обобщаетпроизводный.

НаследованиевC++

class Derived : <модификатор> Base { //...

};

Например:

class Rabbit : public Mammal { // ...

};

Пример:библиотечнаясистема

class Item { // единица хранения public:

Item();

~Item();

//истина, если на руках bool IsTaken() const;

//истина, если имеется в библиотеке bool IsAvailable() const;

//инвентарный номер

long GetInvNumber() const; void SetInvNumber(long inv);

Спасибозавнимание!

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