- •Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
- •Класс в ооп и его основные компоненты.
- •Перегрузка функций.
- •Уровни доступа к элементам класса.
- •Область видимости объектов, скрытие имен.
- •Динамическая память, функции работы с памятью.
- •Динамическая память, операции работы с памятью.
- •Передача аргументов в функцию по умолчанию.
- •11. Характеристика элементов-данных класса.
- •13. Указатель «this». Пример явного использования.
- •Void load_i (int val) {
- •14. Функции-друзья класса.
- •15. Функции-конструкторы. Явный и косвенный вызов конструктора.
- •16. Функции-деструкторы.
- •17. Методы класса с атрибутом «const».
- •18. Статические методы и данные. Атрибут «static»
- •23. Виртуальный базовый класс.
- •25. Виртуальные функции. Переопределение виртуальных функций.
- •26. Понятие абстрактного класса.
- •27. Перегрузка операций.
- •28. Особенности перегрузки операций при помощи методов класса и функций-друзей.
- •29. Перегрузка методами класса.
- •30. Использование ссылок при перегрузке унарных операций.
- •31. Стандартная библиотека. Общая характеристика.
- •32. Строковый класс стандартной библиотеки.
- •2. String (const char *str);
- •3. String (const string &str);
- •Insert() - вставка символов одной строки в другую
- •33. Контейнерные классы.
- •Vector - динамический массив
- •34. Итераторы.
- •Категории итераторов
- •Операции доступные итераторам
- •35. Алгоритмы.
- •36. Потоковые классы.
- •37. Управление выводом. Манипуляторы и флажки.
- •38. Файловые потоки.
- •39. Шаблоны функций
- •40. Шаблоны классов.
- •41. Обработка исключений. Общая характеристика.
- •42. Вложенные классы.
- •43. Классы и указатели при наследовании.
- •44. Многократная перегрузка операций.
- •46. Указатель типа «void».
- •47. Адрес в качестве возвращаемого значения функции.
- •48. Операция «typeid».
- •49. Виды обработчиков исключительных операций.
- •50. Отличие вызова функций от вызова обработчика исключительной ситуации.
- •51. Создание собственного завершающего кода при перехвате исключительной ситуации.
- •52. Форма конструктора со списком инициализации.
18. Статические методы и данные. Атрибут «static»
Статические члены-данные класса(static-данные) разделяются всеми объектами класса, т.е. для них всегда будет существовать только одна копия.
Можно также объявить статической функцию-член(метод) класса. К static-методу класса могут получить доступ только другие static-методы этого класса. Статическая функция-член не имеет указателя this.
Обращение к статическим членам класса выполняется через имя класса и оператор разрешения области видимости:: Например, my_class:: num=100;
19. Указатели на компоненты класса.
Указатели на нестатические компоненты класса определяются через имя объекта класса и “->”
Например, my_OBJ->n num=100; Обращение к статическим членам класса выполняется через имя класса и оператор разрешения области видимости:: Например, my_class:: snum=100;
20. Наследование. Базовый и производный классы.
Наследование – механизм создания производного класса из базового, т.е. к существующему классу можно что-либо добавить или изменять его каким-либо образом для создания нового (производного) класса. Это мощный механизм для повторного использования кода. Наследование позволяет создавать иерархию связанных типов, совместно использующих код и интерфейс.
21. Инициализация объектов при наследовании.
Последовательность инициализации объектов такая. Компилятор сначала вызывает конструкторы всех базовых классов (в том порядке, в котором классы присутствуют в списке наследования), а потом конструкторы для всех своих членов (в порядке объявления), а только затем выполняется тело конструктора.
22. Указатели на производный и базовый классы. Формат явного преобразования указателей на базовый класс.
Указатели на базовый и производные классы связаны такими отношениями, которые не свойственны указателям других типов. В С++ указатель на базовый класс также можно использовать для ссылки на объект любого класса, выведенного из базового. Но!, указатель на производный класс нельзя использовать для доступа к объектам базового класса.
Формат явного преобразования указателей на базовый класс следующий:
((D_class*)p) , где p - указатель на базовый класс,D_class - производный класс от базового класса, на который настроен указатель p.
23. Виртуальный базовый класс.
Если два(или больше) класса выведены из общего базового класса, можно предотвратить включение нескольких его копий в объекте, выведенном из этих классов, реализовав путем объявления базового класса при его наследовании виртуальным.
Производный класс, наследующий базовый класс как виртуальный, объявляется следующим образом:
class derived1:virtual public base{ }, где derived1 - производный класс от базового base
class derived2:virtual public base{ }, где derived1 - производный класс от базового base
class derived3: derived1,derived2 { }, где derived1 - производный класс от базового base
Класс derived3 содержит только одну копию базового класса base
24. Конструктор во множественном наследовании.
Конструктор базового класса выполняется ранее конструктора производного класса.
Конструкторы при множественном наследовании вызываются в порядке происхождения классов, а деструкторы – в обратном порядке.