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

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

1. Реализуйте пакеты на языке Ada 95 и классы на языке C++ для работы с множествами.

2. Может ли абстрактный тип в языке Ada 95 или абстрактный класс в язы­ке C++ иметь компоненты-данные? Если так, для чего они могли бы ис­пользоваться?

type Item is abstract tagged

Ada

record

I: Integer;

end record;

3. Напишите программу для неоднородной очереди, основываясь на абст­рактном классе.

4. Реализуйте пакеты/классы для множеств с родовым типом элемента, а не только для целочисленных элементов.

5. Подробно изучите множественное наследование в языке Eiffel и сравни­те его с множественным наследованием в языке C++.

6. Стандартный пример множественного наследования в языке Eiffel -спи­сок фиксированного размера, реализованный с помощью наследова­ния, как от списка, так и от массива. Как бы вы написали такие ADT (аб­страктные типы данных) на языке Ada 95, в котором нет множественно­го наследования?

7. Чем опасно определение защищенных (protected) данных в языке C++? Относится ли это также к пакетам-детям в языке Ada 95?

  1. Изучите структуру стандартной библиотеки в языке Ada 95, в котором широко используются пакеты-дети. Сравните ее со структурой стандар­тных классов ввода-вывода в языке C++.

9. Изучите пакет Finalization в языке Ada 95, который может использовать­ся для написания конструкторов и деструкторов. Сравните его с конст­рукциями языка C++.

10. Какова связь между операторами присваивания и конструкторами/де структорами?

11. Дайте примеры использования CW-объектов.