- •1. Объектно-ориентированное программирование (oop). Объектно-ориентированная технология (oot) программирования.
- •2. Свойства оор.
- •3. Объектно-ориентированный подход (ооп). Определение составляющих объектного подхода: ооа, ood, оор.
- •4. Компоненты оор.
- •5. Объект. Основные понятия: определение объекта, его состояние, поведение, индивидуальность. Взаимодействие объектов. Отношения между объектами.
- •6. Класс. Отношения между классами. Классификация. Методы классификации.
- •7. Вопросы качества абстракция и выбора операций при создании классов и объектов.
- •9. Ссылки и параметры-ссылки. Объявления переменных.
- •10. Встраиваемые функции. Операции new и delete.
- •11. Функции-члены и данные-члены.
- •12. Интерфейсы и реализация.
- •13. Конструкторы и инициализация. Конструктор без параметров (по умолчанию). Конструктор копирования.
- •14. Деструкторы и очистка.
- •Статические члены: функции и данные.
- •16. Структуры и объединения.
- •17. Константные члены-функции и константные объекты.
- •18. Дружественные функции и перегрузка операций.
- •19. Перегрузка new, delete.
- •Void *operator new (size_f size);
- •Void operator delete (void *); //void * - указатель на область памяти, //выделяемую под объект
- •20. Преобразование типов, определяемых пользователем с помощью конструкторов и операций преобразования.
- •22. Друзья-функции и друзья-классы
- •24. Производные классы. Базы прямые, непрямые
- •25. Конструкторы, деструкторы и наследование
- •26. Множественное наследование
- •27. Виртуальные базовые классы. Иерархия классов. Виртуальные функции
- •Virtual void draw();
- •Void draw();
- •28. Полиморфизм
- •29. Абстрактные классы и чистые виртуальные функции.
- •30. Заголовочные файлы. Предопределенные объекты и потоки.
- •31. Операции помещения и извлечения. Манипуляторы
- •Int main()
- •33. Конструкторы файловых потоков. Ввод-вывод в файлы.
- •34 Параметризированные типы и функции
- •35 Шаблоны функций. Параметры шаблонов. Шаблоны классов
- •36. Контейнеры. Итераторы
- •37. Использование assert, кодов возврата, сигналов, setjmp и longjmp.
- •38. Объектно-ориентированная обработка исключений. Применение try, catch, throw.
9. Ссылки и параметры-ссылки. Объявления переменных.
Ссылка – это оператор, который осуществляет доступ к данным некоторых переменных. Т.обр., если передать некий параметр а в функцию, то она сможет его изменять только внутри себя, а за пределами этой функции значение а не изменится. Если же передать в функцию параметр &a, то при изменении a внутри функции будет меняться и значение a вне этой функции. При выводе в поток значения &a будет выведен адрес ячейки памяти, где хранится значение переменной a. С точки зрения реализации ссылка это по сути указатель, который жестко привязан к области памяти, на которую он указывает и который автоматически разыменовывается, когда мы обращаемся по имени ссылки.
Объявление вводит в программу одно или несколько имен. Каждое имя обязательно должно быть объявлено, прежде чем оно будет использовано, т.к. компилятору нужно знать, с чем он имеет дело. В C++ объявление является описанием за исключением следующих случаев:
оно объявляет функцию без спецификации тела;
содержит спецификатор extern при отсутствии инициализатора и тела функции;
является объявлением статического компонента в объявлении класса;
является объявлением имени класса;
является объявлением имени типа typedef.
Описание определяет некоторую сущность, с которой будет оперировать компилятор или программа.
10. Встраиваемые функции. Операции new и delete.
При объявлении функции внутри программы C++ позволяет вам предварить имя функции ключевым словом inline. Если компилятор C++ встречает ключевое слово inline, он помещает в выполнимый файл (машинный язык) операторы этой функции в месте каждого ее вызова. Таким образом, можно улучшить читаемость ваших программ на C++, используя функции, и в то же время увеличить производительность, избегая издержек на вызов функций.
Функции с ключевым словом inline при объявлении называются встраиваемыми.
Время жизни объекта определяется областью действия его имени. В зависимости от расположения оператора определения объекта, он может располагаться в глобальном или локальном сегменте памяти. При определении глобального объекта соответствующие конструкторы объявляются со спецификатором public, поскольку они должны быть доступны фактически до начала выполнения программы. Глобальные объекты существуют в течение всего времени выполнения программы. В контексте выражений размещения и удаления могут быть использованы стандартные операции C++ new и delete, а может быть обеспечен вызов операторных функций operator new и operator delete. Важная роль при этом отводится деструкторам и конструкторам.
В C++ new - оператор, обеспечивающий выделение динамической памяти в куче, delete возвращает память, выделенную оператором new, обратно в кучу.
11. Функции-члены и данные-члены.
Определение класса состоит из двух частей: заголовка, включающего ключевое слово class, за которым следует имя класса, и тела, заключенного в фигурные скобки. Внутри тела объявляются данные-члены и функции-члены и указываются уровни доступа к ним. Таким образом, тело класса определяет список его членов. Каждое определение вводит новый тип данных. Даже если два класса имеют одинаковые списки членов, они все равно считаются разными типами. Тело класса определяет отдельную область видимости. Объявление членов внутри тела помещает их имена в область видимости класса. Данные-члены класса объявляются так же, как переменные. Объявление функций-членов выглядит точно так же, как объявление функции в области видимости пространства имен.