18.3.2. Открытие отдельных членов

18.3.2. Открытие отдельных членов

Когда мы применили закрытое наследование класса PeekbackStack от IntArray, то все защищенные и открытые члены IntArray стали закрытыми членами PeekbackStack. Было бы полезно, если бы пользователи PeekbackStack могли узнать размер стека с помощью такой инструкции:

is.size();

Разработчик способен оградить некоторые члены базового класса от эффектов неоткрытого наследования. Вот как, к примеру, открывается функция-член size() класса IntArray:

class PeekbackStack : private IntArray {

public:

// сохранить открытый уровень доступа

using IntArray::size;

// ...

};

Еще одна причина для открытия отдельных членов заключается в том, что иногда необходимо разрешить доступ к защищенным членам закрыто унаследованного базового класса при последующем наследовании. Предположим, что пользователям нужен подтип стека PeekbackStack, который может динамически расти. Для этого классу, производному от PeekbackStack, понадобится доступ к защищенным элементам ia и _size класса IntArray:

template class Type

class PeekbackStack : private IntArray {

public:

using intArray::size;

// ...

protected:

using intArray::size;

using intArray::ia;

// ...

};

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

На практике множественное наследование очень часто применяется для того, чтобы унаследовать открытый интерфейс одного класса и закрытую реализацию другого. Например, в библиотеку классов Booch Components включена следующая реализация растущей очереди Queue (см. также статью Майкла Вило (Michaeel Vilot) и Грейди Буча (Grady Booch) в [LIPPMAN96b]):

template class item, class container

class Unbounded_Queue:

private Simple_Listitem , // ?aaeecaoey

public Queue item // eioa?oaen

{ ... }

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Глава 7 Проектирование отдельных предметов интерьера

Из книги Домашний архитектор. Подготовка к ремонту и строительству на компьютере автора Булат Виталий

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


Проводник как два отдельных процесса

Из книги Реестр Windows автора Климов Александр

Проводник как два отдельных процесса Как известно, Проводник выступает и в качестве оболочки Windows, и в качестве файл-менеджера. И хотя это повышает удобство, на использовании памяти это сказывается отнюдь не лучшим образом. При нормальных условиях Проводник отнимает


Построение здания из отдельных стен

Из книги ArCon. Дизайн интерьеров и архитектурное моделирование для всех автора Кидрук Максим Иванович

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


Блокировка отдельных видов операций над слоем

Из книги Photoshop CS3: Обучающий курс автора Тимофеев Сергей Михайлович

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


6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ

Из книги Технологии программирования автора Камаев В А

6.2. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ ПРОГРАММ Программная система может состоять из отдельных разработанных разными организациями выполняемых программ. Объединение функций этих программ в целую единую программу может привести к нехватке оперативной памяти машины, а сама


6.3. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ РЕЗИДЕНТНЫХ ПРОГРАММ

Из книги Сетевые средства Linux автора Смит Родерик В.

6.3. СИСТЕМЫ ИЗ ОТДЕЛЬНЫХ РЕЗИДЕНТНЫХ ПРОГРАММ Резидентная программа — программа, которая постоянно находится в оперативной памяти машины и не препятствует запуску новых программ. После запуска резидентная программа становится как бы частью операционной системы MS DOS


Параметры для отдельных клиентов

Из книги XSLT автора Хольцнер Стивен

Параметры для отдельных клиентов Как было сказано ранее, в декларации, состоящей из нескольких строк, могут указываться параметры; они применимы только к текущей декларации. Параметрами являются выражения hardware и fixed-address в декларации host. Для конкретных компьютеров можно


Использование отдельных процессоров XSLT

Из книги Цифровая фотография без Photoshop автора Газаров Артур Юрьевич

Использование отдельных процессоров XSLT Отдельные процессоры XSLT — один из самых распространенных способов провести XSLT-преобразования. Существует весьма много таких процессоров, хотя и не все из них могут обрабатывать все возможные таблицы стилей XSLT. Для того, чтобы


Обработка отдельных символов:

Из книги Windows Vista. Трюки и эффекты автора Зозуля Юрий

Обработка отдельных символов: <fo:character> Как можно догадаться по имени, объект <fo:character> позволяет работать с отдельными символами в документе. Одна из областей применения <fo:character> — случай, когда нужно заменить определенные символы на другие. В следующем примере я


Съемка отдельных предметов

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Съемка отдельных предметов Все объекты по форме можно условно вписать в определенные геометрические фигуры: куб, сферу, конус или плоскость, – что определяет подход к съемке этих предметов.Объекты кубической формы хорошо снимать, используя три источника света. Подбирая


3.6. Настройка отдельных элементов интерфейса

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

3.6. Настройка отдельных элементов интерфейса ClearType и его тонкая настройкаСегодня все большую популярность завоевывают жидкокристаллические мониторы, которые обладают множеством неоспоримых преимуществ перед традиционными электронно-лучевыми мониторами. Однако


Редактирование отдельных битов значения параметра

Из книги Интернет для ржавых чайников автора Левина Любовь Трофимовна

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


11.2.4. Проверка уникальности отдельных полей

Из книги Wiki-правительство [Как технологии могут сделать власть лучше, демократию – сильнее, а граждан – влиятельнее] автора Новек Бет

11.2.4. Проверка уникальности отдельных полей Команда uniq позволяет разбивать файл на поля, разделенные пробелами, с тем чтобы можно было исключать требуемые поля из процедуры проверки. Ниже показан небольшой файл, содержащий две колонки текста, причем содержимое второго


11.4.2. Вырезание отдельных символов

Из книги автора

11.4.2. Вырезание отдельных символов Опция -c позволяет указывать, какие конкретно символы необходимо извлекать из каждой строки входного потока. Применять эту опцию следует в том случае, если вы имеете дело со строками фиксированной длиныРассмотрим такой пример. Когда в


Как увеличить шрифт на отдельных участках экрана

Из книги автора

Как увеличить шрифт на отдельных участках экрана Возможность увеличить шрифт на экране очень даже для нас полезная. Попробуем.1. Нажимаем на панели задач Пуск.2. Находим Все программы. 3. Кликаем на неё.4. 5. Выбираем Стандартные. 6. Далее по Специальные возможности.7. А