Объектно-Ориентированное программирование
ДВГТУ, ООП, Май 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. Анализ заголовочных файлов стандартных библиотек, например, <stdio.h>.
33. Прототипы функций, назначение, использование в проекте.
34. Разбиение программы на модули, назначение заголовочных файлов.
35. Конструирование классов на базе структур данных и функций обработки.
36. Описание класса и объявление объекта, вызов методов объекта.
37. Пример наследования классов. Пример множественного наследования.
38. Управление проектом в интегрированной среде, разбиение проекта на
модули и состав модулей; контроль размещения исходных файлов,
назначение директорий.
39. Типы файлов, создаваемые системой программирования в проекте.
Обеспечение сохранности файлов проекта, резервное копирование.
40. Использование отладчика для локализации ошибки в программе.
IV. Ввод/вывод в С/С++.
41. Понятие потока и файла. Буферизованный и небуферизованный ввод/вывод.
42. Имена стандартных потоков в С и в С++, их назначение. Объявление
потоков, связывание их с файлами, закрытие потоков.
43. Ввод/вывод в С++. Переопределение операций ввода/вывода.