Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1

Кент Рейсдорф. BORLAND C++BUILDER. Страница 86

Теперь перейдем к листингу 4.2. Он содержит определение класса Air­plane. Конструктор выполняет инициализацию, включающую динамическое размещение символьного массива, содержащего названия самолетов. Выде­ленная память освобождается деструктором. Основную работу выполняет функция SendMessage(). Оператор switch определяет, какая команда была послана и выполняет соответствующее действие. Заметьте, что функции Таке- Off() и Land() не могут быть вызваны непосредственно (они относятся к защищенным), а вызываются через функцию SendMessage(). Таким образом, вы не можете поднять или посадить самолет; можно только выдать команду на совершение одного из этих действий. Функция ReportStatus() вызывает GetStatus() для получения строки состояния, которую та формирует.

Основная программа приведена в листинге 4.3. Первым делом программа инициализирует массив указателей на Airplane и создает три экземпляра этого класса. Затем начинается цикл. Вы можете послать команду любому из трех самолетов, вызывая функцию SendMessage(). При этом вы получаете отклик. Обратите внимание, что условное выражение в цикле do-while пред­ставляет собой просто 1. Такой цикл будет выполняться бесконечно. В данном случае это не страшно, потому что для выхода из цикла использован оператор break. Запустите программу и поиграйте с ней, чтобы почувствовать, как она работает.

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

Одним из наиболее мощных свойств классов в Си++ является возмож­ность их расширения путем наследования.

Наследование (inheritance) — это создание нового класса путем добавления новых членов к уже существующему классу.

Класс, к которому добавляются новые члены, называется базовым классом (base class), а вновь созданный класс — производным клас­сом (derived class).

Web-дизайн (с) 2010 All rights reserved