Объектно-Ориентированное программирование

Объектно-Ориентированное программирование

ДВГТУ, ООП, Май 2004

Вопросы на экзамен по учебной

дисциплине

"Объектно-ориентированное программирование"

I. Общие вопросы программирования

1. Развитие языков программирования. Языки программирования C и C++.

2. Процедурное программирование. Основные идеи структурного

программирования.

3. Базовые конструкции структурного программирования, их реализация в Си.

4. Циклы. Оператор ветвления. Выбор.

5. Функция, модуль, заголовочный файл, проект.

6. Функция: передача параметров и возврат значений при вызове. Прототип

функции.

7. Передача параметров в функцию по значению и по ссылке.

8. Массивы. Строки. Динамическое выделение памяти под массив.

9. Конструирование сложных типов данных. Структуры в С.

10. Понятие указателя. Работа с указателями.

Управление памятью. Динамическое выделение памяти. Утечка памяти.

"Сборка мусора".

11. Преобразование программы на С/С++ из исходного текста в исполняемый

модуль.

Объектный модуль. Сборки загрузочного модуля.

12. Заголовочные файлы. Препроцессор С/С++.

13. Препроцессор С, директивы #include, #define, #ifdef, #endif

14. Проектирование программы, схема иерархии модулей. Структура сложных

программ.

II. Основы объектно-ориентированного программирования

15. Основная идея ООП. Классы и объекты. Разделы класса. Интерфейс класса.

16. Переход к ООП как этап развития технологии разработки ПП.

17. Основные понятия ООП. Класс и объект.

18. Принципы ООП. Инкапсуляция. Наследование. Полиморфизм.

19. Конструирование классов. Контроль доступа к элементам класса, разделы

класса private и public. Классы и функции – члены класса.

20. Конструкторы и деструкторы.

21. Виды объектов в памяти и время их жизни, статические члены класса.

22. Указатель this, модификатор inline .

23. Наследование: конструирование нового класса на базе существующего

класса; раздел класса protected; построение иерархии классов.

24. Режимы доступа: внешнее, защищенное и внутреннее наследование.

25. Множественное наследование.

26. Виртуальные методы.

27. Чистые виртуальные методы и абстрактные классы.

28. Переопределение операций для классов. Пример.

29. "Друзья" класса (friend), переопределение операций ввода/вывода.

III. Практика программирования.

30. Стиль программирования: правила составления имен, комментирование,

отступы.

31. Содержимое заголовочного файла в Вашем проекте.

32. Анализ заголовочных файлов стандартных библиотек, например, .

33. Прототипы функций, назначение, использование в проекте.

34. Разбиение программы на модули, назначение заголовочных файлов.

35. Конструирование классов на базе структур данных и функций обработки.

36. Описание класса и объявление объекта, вызов методов объекта.

37. Пример наследования классов. Пример множественного наследования.

38. Управление проектом в интегрированной среде, разбиение проекта на

модули и состав модулей; контроль размещения исходных файлов,

назначение директорий.

39. Типы файлов, создаваемые системой программирования в проекте.

Обеспечение сохранности файлов проекта, резервное копирование.

40. Использование отладчика для локализации ошибки в программе.

IV. Ввод/вывод в С/С++.

41. Понятие потока и файла. Буферизованный и небуферизованный ввод/вывод.

42. Имена стандартных потоков в С и в С++, их назначение. Объявление

потоков, связывание их с файлами, закрытие потоков.

43. Ввод/вывод в С++. Переопределение операций ввода/вывода.