Программирование >>  Поддержка объектно-ориентированного программирования 

1 ... 117 118 119 [ 120 ]


что деструктор создал объект в определенной памяти. Какие еще полезные операции можно предложить? Проверьте класс Persistent на нескольких классах по своему выбору. Является ли класс Persistent узловым классом, конкретным или абстрактным типом? Аргументируйте ответ.

11. (*3) Составьте только описание класса stack, который реализует стек с помощью операций create() (создать стек), delete() (уничтожить стек), push() (записать в стек) и pop() (читать из стека). Используйте только статические члены. Для привязки и обозначения стеков определите класс id. Гарантируйте, что пользователь сможет копировать объекты stack::id, но не сможет работать с ними иным способом. Сравните это определение стека с классом stack из $$8.2.

12. (*3) Составьте описание класса stack, который является абстрактным типом ($$13.3). Предложите две различные реализации для интерфейса, заданного stack. Напишите небольшую программу, работающую с этими классами. Сравните это решение с классами, определяющими стек, из предыдущего упражнения и из $$8.2.

13. (*3) Составьте такое описание класса stack, для которого можно в динамике менять реализацию. Подсказка: Всякую задачу можно решить, введя еще одну косвенность .

14. (*3.5) Определите класс Oper, содержащий идентификатор (некоторого подходящего типа) и операцию (некоторый указатель на функцию). Определите класс cat object, содержащий список объектов Oper и объект типа void*. Задайте в классе cat object операции: add oper(), которая добавляет объект к списку; remove oper(id), которая удаляет из списка объект Oper c идентификатором id; operator() (id,arg), которая вызывает функцию из объекта Oper c идентификатором id. Реализуйте с помощью класса cat object стек объектов Oper. Напишите небольшую программу, работающую с этими классами.

15. (*3) Определите шаблон типа Object, служащий базовым классом для cat object. С помощью Object реализуйте стек для объектов класса String. Напишите небольшую программу, использующую этот шаблон типа.

1 6. (*3) Определите вариант класса Object под именем Class, в котором объекты с одинаковым идентификатором имеют общий список операций. Напишите небольшую программу, использующую этот шаблон типа.

1 7. (*3) Определите шаблон типа Stack, который задает традиционный и надежный интерфейс со стеком, реализуемым объектом шаблона типа Object. Сравните это определение стека с классами, задающими стек, из предыдущих упражнений. Напишите небольшую программу, использующую этот шаблон типа.



1 ... 117 118 119 [ 120 ]

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика