Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 86
Теперь перейдем к листингу 4.2. Он содержит определение класса Airplane. Конструктор выполняет инициализацию, включающую динамическое размещение символьного массива, содержащего названия самолетов. Выделенная память освобождается деструктором. Основную работу выполняет функция SendMessage(). Оператор switch определяет, какая команда была послана и выполняет соответствующее действие. Заметьте, что функции Таке- Off() и Land() не могут быть вызваны непосредственно (они относятся к защищенным), а вызываются через функцию SendMessage(). Таким образом, вы не можете поднять или посадить самолет; можно только выдать команду на совершение одного из этих действий. Функция ReportStatus() вызывает GetStatus() для получения строки состояния, которую та формирует.
Основная программа приведена в листинге 4.3. Первым делом программа инициализирует массив указателей на Airplane и создает три экземпляра этого класса. Затем начинается цикл. Вы можете послать команду любому из трех самолетов, вызывая функцию SendMessage(). При этом вы получаете отклик. Обратите внимание, что условное выражение в цикле do-while представляет собой просто 1. Такой цикл будет выполняться бесконечно. В данном случае это не страшно, потому что для выхода из цикла использован оператор break. Запустите программу и поиграйте с ней, чтобы почувствовать, как она работает.
Одним из наиболее мощных свойств классов в Си++ является возможность их расширения путем наследования.
Наследование (inheritance) — это создание нового класса путем добавления новых членов к уже существующему классу.
Класс, к которому добавляются новые члены, называется базовым классом (base class), а вновь созданный класс — производным классом (derived class).