- •1. Краткие теоретические сведения
- •1.1. Объектно-ориентированный подход-Бузюков
- •1.2. Этапы разработки ооп систем
- •1.3. Декомпозиция
- •1.5. Концепции ооп
- •1.6. Синтаксис объявления класса
- •1.7. Методы класса
- •1.8. Объявление объектов
- •1.9. Конструктор
- •1.10. Деструктор
- •1.11. Инкапсуляция
- •1.12. Полиморфизм
- •1.13. Указатель this
- •1.14. Статические члены класса
- •1.15. Дружественные функции и классы
- •1.16. Вложенные классы
- •1.17. Элементы класса
- •1.17.1. Данные-элементы
- •1.17.2. Элементы-функции
- •1.17.3. Доступ к данным-элементам
- •1.17.4. Вызов функций-элементов
- •1.17.5. Указатели на компоненты-функции.
- •2. Задание
- •2.4.1.2. Пример для варианта 30
- •2.4.1.2.1. Разработка алгоритма решения.
- •2.4.1.2.2. Описание структуры класса.
- •2.4.1.2.2.1. Описание полей класса.
- •2.4.1.2.2.2. Функции-аксессоры.
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Простейшие классы и объекты
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Простейший класс. Объединение данных и методов
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример
- •2.4.3.3. Программы
- •2.4.3.3.1. Первый принцип инкапсуляции: объединение данных и методов
- •2.4.3.3.2. Второй принцип инкапсуляции: защита от внешнего вмешательства
- •2.4.3.3.3. Независимость интерфейса от реализации
- •2.4.3.3.4. Конструктор, деструктор
- •2.4.3.3.5. Определение методов вне класса
- •2.4.3.3.6. Конcтантные поля, методы и объекты
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Пользовательский класс
- •2.4.4.1. Условие задания
- •2.4.4.2. Методические указания.
- •1. Пример определения класса.
- •2. Пример реализации конструктора с выдачей сообщения.
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Объектно-ориентированный подход-Бузюков 2
4. Требование к отчету
В отчете должны быть отображены следующие пункты:
1. Название работы.
2. Цель работы
3. Задание.
4. Краткие теоретические сведения.
5. Листинги семи программ.
6. Таблицы выбора идентификаторов (таблицы кодирования переменных).
7. Результаты выполнения трех программ (скриншоты).
8. Выводы.
5. Вопросы для самоконтроля
1. Что представляет собой класс?
2. Какие спецификации доступа используются при описании класса?
3. Что является элементами класса?
4. Как осуществляется доступ к элементам класса?
5. Для чего используется указатель this?
6. Что такое конструктор?
7. Что такое деструктор?
8. Что понимается под термином «класс»?
9. Какие элементы определяются в составе класса?
10. Каково соотношение понятий «класс» и «объект»?
11. Что понимается под термином «члены класса»?
12. Какие члены класса Вам известны?
13. Какие члены класса содержат код?
14. Какие члены класса содержат данные?
15. Перечислите разновидности членов класса специфичных для языка C++.
16. Что понимается под термином «конструктор»?
17. Сколько конструкторов может содержать класс языка C++?
18. Приведите синтаксис описания класса в общем виде. Проиллюстрируйте его фрагментом программы на языке C++.
19. В чем заключаются особенности доступа членов класса с модификатором public?
20. В чем заключаются особенности доступа членов класса с модификатором private?
21. В чем заключаются особенности доступа членов класса с модификатором protected?
22. В чем заключаются особенности доступа членов класса с модификатором internal?
23. Какое ключевое слово языка C++ используется при создании объекта?
24. Приведите синтаксис создания объекта в общем виде. Проиллюстрируйте его фрагментом программы на языке C++.
25. В чем состоит назначение конструктора?
26. Каждый ли класс языка C++ имеет конструктор?
27. Какие умолчания для конструкторов приняты в языке C++?
28. В каком случае конструктор по умолчанию не используется?
29. Приведите синтаксис конструктора класса в общем виде. Проиллюстрируйте его фрагментом программы на языке C++.
30. Что понимается под термином «деструктор»?
31. В чем состоит назначение деструктора?
32. Приведите синтаксис деструктора класса в общем виде. Проиллюстрируйте его фрагментом программы на языке C++.
33. Имеет ли деструктор параметры?
34. Возвращает ли деструктор значение?
35. Что понимается под термином «наследование»?
36. Какая классификация объектов соответствует наследованию?
37. Что общего имеет дочерний класс с родительским?
38. В чем состоит различие между дочерним и родительским классами?
39. Приведите синтаксис описания наследования классов в общем виде. Проиллюстрируйте его фрагментом программы на языке C++.
40. Какому отношению соответствует иерархия классов?
41. Какому отношению соответствует иерархия объектов?
42. В чем заключается принцип инкапсуляции?
43. В чем смысл разделения класса на интерфейс и реализацию?
44. Что такое класс? Как он определяется? Как определяются операции для класса?
45. Как определяется открытая и закрытая части тела класса?
46. Что такое друг класса?
47. В чем основные отличия класса от структуры?
48. Дайте понятие наследования классов.
49. Опишите класс для хранения имени, места работы и возраста сотрудника с двумя конструкторами: без аргументов и с аргументами для инициализации указанных полей.
50. Какими способами можно создавать экземпляры классов?
51. Дайте понятие полиморфизма.
52. В какой последовательности вызываются конструкторы базовых классов при создании экземпляра дочернего класса?
53. При каком режиме доступа возможно обращение ко всем элементам класса?
54. Придумайте и запишите какой-либо метод класса для задания значений его частным элементам.
55. Каким образом выполняется наследование классов в С++?
56. Как задается описание функции класса за его пределами?
57. В чем особенность режима доступа protected и чем он отличается от режима private?
58. Дайте понятие множественного наследования.
59. Что такое дружественные функции и для чего они предназначены?
60. Как задаются виртуальные функции класса?
61. Запишите двухуровневую иерархию для описания объема хранимых денежных средств в разной валюте и в базовом классе реализуйте виртуальную функцию для вывода доступных средств в соответствующих денежных единицах.
62. Поясните, что понимается под перегрузкой операторов.
63. Запишите класс для работы с комплексными числами, используя механизм перегрузки операторов.
64. Что значит в ООП понятие «класс», и какой формат его объявления в программе?
65. Что такое объект класса, что он содержит?
66. Какие существуют уровни доступа к объектам и методам класса (дать характеристику каждому)?
67. Что такое операция привязки, ее основное назначение?
68. Для чего нужны классы?
69. Что определяют методы класса?
70. Атрибутами (данными-членами) класса могут быть?
71. Какими по умолчанию объявляются элементы структуры?
72. В чем отличие класса от структуры и объединения.
73. Какая конструкция языка С++ является более мощной: класс или структура? Объясните, почему?