Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lect09.pdf
Скачиваний:
5
Добавлен:
06.02.2016
Размер:
492.28 Кб
Скачать

Защищенное наследование

Защищенное наследование – это наследование реализации, доступной для последующего наследования.

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

Данныеметодымогут использоватьсяклассами, порожденнымиотпроизводного.

Какивслучаезакрытогонаследования порожденныйклассдолжен предоставить собственныйинтерфейс.

Пример

class IntArray { public:

int getValue(int index)const; void setValue(int index, int v); int getLength()const;

private:

...

};

class IntStack : protected IntArray { public:

void push(int element); int pop();

bool isEmpty()const;

};

class IntStackEx : public IntStack { public:

// Расширяем интерфейс IntStack

};

Сравнениетиповнаследования в

C++

 

Публичное

 

Защищенное

 

Закрытое

 

 

 

 

 

 

Base

Child : public Base

 

Child: protected

 

Child: private Base

 

 

 

Base

 

 

public: public:

protected: private:

protected: protected:

private:

недоступно

недоступно

недоступно

 

Public, private

 

Public, private

 

Public, private

(с)МарГТУ

& protected

 

& protected

 

& protected

 

 

 

 

 

Типынаследования вдругих языкахООП

Публичное наследование является наиболее естественным вариантом наследования и поддерживается всеми ОО языками программирования.

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

вместоприватногонаследованияиспользуют композицию;

защищенноенаследование– вбольшинстве случаевне имеетсмысла.

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