- •Вопрос 1. Ссылки и ссылочные параметры.
- •Вопрос 2. Перегрузка функций.
- •Вопрос 3. Шаблоны функций.
- •Вопрос 4. Использование const с указателями.
- •Вопрос 5. Область действия класса. Управление доступом к членам класса. Отделение интерфейса от реализации.
- •Вопрос 6. Понятие конструктора .Использование констр-ра с аргументами по умолчанию. Конструктор по умолчанию.
- •Вопрос 7. Понятие деструктора. Когда вызывается конструктор и деструктор.
- •Вопрос 8. Константные объекты и функции-члены.
- •Вопрос 9. Дружественные функции и друж. Классы.
- •Вопрос 10. Указатель this.
- •Вопрос 11. Операции new и delete.
- •Вопрос 12. Статические члены класса.
- •Вопрос 13. Понятие перегрузки операций.
- •Вопрос 14. Функции-операции как члены класса и как друж-е функции
- •Вопрос 15. Перегрузка операций ввода/вывода в поток, бинар и унар операций.
- •Вопрос 17. Перегрузка операций индексации массива.
- •Вопрос 18. Понятие наследования. Механизм ограничения доступа при наследовании.
- •Вопрос 19. Приведение типа указателя базового класса к указателю производного класса и наоборот.
- •Вопрос 21. Конструкторы и деструкторы в производных классах.
- •Вопрос 22. Неявное преобразование объектов производных классов в объекты базового класса.
- •Вопрос 23. Иерархия классов. Уровни наследования.
- •Вопрос 24. Множественное наследование.
- •Вопрос 25. Неопределённость при множ-м наследовании. Включение «классы в классах».
- •Вопрос 26. Понятие виртуальной функции.
- •Вопрос 27. Понятие полиморфизма.
- •Вопрос 28. Абстрактные и конкретные базовые классы.
- •Вопрос 29. Статическое и динамическое связывание.
- •Вопрос 30. Виртуальные деструкторы.
- •Вопрос 31. Шаблоны классов.
- •Вопрос 32. Шаблоны классов и пользовательские типы
- •Вопрос 33. Шаблоны и наследование.
- •Вопрос 34. Классы и объекты потоков ввода/вывода. Иерархия потоковых классов.
- •Вопрос 35, 38. Предопределённые потоковые объекты. Состояние ошибок потока.
- •Вопрос 36. Манипуляторы потоков.
- •Вопрос 37. Неформатированный ввод/вывод с помощью read/ write
- •Вопрос 38. Состояние ошибок ввода/вывода
- •Вопрос 39. Понятие исключения. Когда должна использоваться обработка исключений.
- •Вопрос 40. Генерация исключений. Повторная генерация исключений.
- •Вопрос 41. Перехват исключений.
- •Вопрос 42. Спецификация исключений. Обработка неожиданных исключений.
- •Вопрос 43. «Раскручивание» стека. Иерархия исключений стандартной библиотеки.
- •Вопрос 44. Конструкторы, деструкторы и исключения. Исключения и наследование.
- •Вопрос 45. Обработка неуспешного выполнения new.
- •Вопрос 46. Класс auto_ptr и динамич выделение памяти.
- •Вопрос 47. Static_cast, reinterpret_cast
- •Вопрос 48. Инфо о типе времени выполнения. Оператор dynamic_cast
- •Вопрос 49. Ключевое слово explicit.
- •Вопрос 50. Ключевое слово mutable.
- •Вопрос 51. Указатели на члены класса.
- •Вопрос 52. Множественное наследование. Виртуальные базовые классы.
- •Вопрос 53. Классы-контейнеры и классы-итераторы.
- •Вопрос 54. Понятие ооп. Три условия ооп-программы. Парадигмы ооп.
- •Вопрос 55.Основные составляющие объектного подхода: абстрагирование, инкапсуляция, модульность.
- •Вопрос 56. Основные составляющие объектного подхода: иерархия, типизация, полиморфизм.
- •Вопрос 57. Природа объекта. Состояние, поведение, идентичность объекта.
- •Вопрос 58. Отношения между объектами. Связи. Агрегация.
- •Вопрос 59. Природа классов. Отношения между классами. Типы отношений.
Вопрос 53. Классы-контейнеры и классы-итераторы.
К наиболее популярным типам классов относятся классы-контейнеры (называемые также классы совокупностей), т.е. классы, спроектированные для хранения в них совокупностей объектов, данных.
Возможности классов-контейнеров:
вставка, 2)удаление, 3) поиск, 4) сортировка, 5)проверка наличия элемента в классе и тому подобное, называемые алгоритмом.
Алгоритм – ф-ция, к-рая производит некоторые действия над эл контейнера
Примеры классов-контейнеров:
1) массивы, 2) стеки, 3) очереди, 4) связные списки.
С классами-контейнерами обычно ассоциируется объекты-итераторы (итераторы). Класс-итератор— это объект, к-ый возвращает следующий Эл-т совокупности, напоминает ук-ль (или определяет некоторое действие над следующим элементом совокупности). Когда написан класс-итератор, можно получить следующий эл-т этого класса. Классы-итераторы обычно пишутся как друзья классов, с к-ыми они работают. Это предоставляет итераторам возможность прямого доступа к закрытым данным этих классов. Для каждого класса или типа данных – свои классы-итераторы
3 типа классов-итераторов:
1 Прямой, проход осуществляется по элементам
2. Двунаправленный
3. Итератор со случайным доступом
Вопрос 54. Понятие ооп. Три условия ооп-программы. Парадигмы ооп.
ООП является способом организации программы.
ООП - методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из к-ых является экземпляром определенного класса, а классы образуют иерархию наследования.
Для обработки и взаимодействия кода с данными применяются ф-ции. Для взаимодействия с различными типами и структурами данных необходимо использовать различные ф-ции, что затрудняет написание больших проектов, в к-рых используются мн-во структур данных. В объектно-ориентированном программ-нии ключевым понятием при осуществлении взаимодействия кода и данных является объект. Под объектом понимается некоторая структура, к-ая включает в себя данные и код, к-ый взаимодействует с этими данными. Для создания объектов используют структуры данных, называемые классами (class).
Условия ООП-программы:
1.ООП-программы используют в кач-ве базовых эл-тов - объекты.
2.Каждый объект явл-ся экземпляром какого-либо определенного класса
3.Класы организованы иерархически с возможностью установления соотн-ния is a.
Парадигма ООП
Существует 5 разновидностей программирования:
процедурно-ориентированный (баз. элемент - алгоритм)
объектно-ориент. программ-ние (баз. Эл-т -классы и объекты)
логико-ориентир. (баз.эл-т - цели)
ориент. на правила (баз. эл-т - правило «если-то»)
Ориентир на ограничения (баз. эл-т – инвариантные соотношения)
ООП основывается на объектной модели. Основные принципы: абстрагирование, инкапсуляция, модульность, иерархичность, полиморфизм.
Инкапсуляция - это механизм языка программирования, к-ый отделяет друг от друга эл-ты объекта, определяющие его устройство и поведение. Никакая часть сложной системы не должна зависеть от конструкции другой части, что обеспечивает независимость каждого объекта.
Наследование- это механизм, к-ый позволяет на основе одного класса создавать другой, к-ый наследует св-ва первого класса. В этом случае первый класс наз-ся базовым классом, а второй - производным. При таком механизме производный класс кроме унаследованных св-в базового класса, может также обладать своими св-вами.
Полиморфизм (POLIMORPHISM) возможность для объектов разных классов, связанных с помощью наследования, реагировать различным образом при обращении к одной и той же ф-ции-эл-ту.