logo search
Языки программирования

14.6. Упражнения

1. Метод разработки программного обеспечения, называемый нисходящим программированием, пропагандирует написание программы в терминах операций высокого уровня абстракции и последующей постепенной детализации операций, пока не будет достигнут уровень операторов язы­ка программирования. Сравните этот метод с объектно-ориентирован­ным программированием.

2. Объявили бы вы Aircraft_Data абстрактным типом данных или сделали поля класса открытыми?

3. Проверьте, что можно наследовать из класса в языке C++ или из тегового пакета в языке Ada 95 без перекомпиляции существующего кода.

4. Опишите неоднородную очередь на языке Ada 95: объявите теговый тип Item, определите очередь в терминах Item, а затем породите из Item производные типы — булев, целочисленный и символьный.

5. Опишите неоднородную очередь на языке C++.

6. Проверьте, что в языке C++ диспетчеризация имеет место для ссылочного, но не для обычного параметра.

7. В языке Ada 95 теговый тип может быть расширен приватными добавлениями:

with Airplane_Package; use Airplane_Package;

package SST_Package is

type SST_Data is new Airplane_Data with private;

procedure Set_Speed(A: in out SST_Data; I: in Integer);

function Get_Speed(A: SST_Data) return Integer;

private

end SST_Package;

Каковы преимущества и недостатки такого расширения?

8. Изучите машинные команды, сгенерированные компилятором Ada 95 или C++ для динамического полиморфизма.