- •Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
- •Класс в ооп и его основные компоненты.
- •Перегрузка функций.
- •Уровни доступа к элементам класса.
- •Область видимости объектов, скрытие имен.
- •Динамическая память, функции работы с памятью.
- •Динамическая память, операции работы с памятью.
- •Передача аргументов в функцию по умолчанию.
- •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. Форма конструктора со списком инициализации.
Основы ооп. Понятие инкапсуляции, наследования и полиморфизма.
В основе объектно-ориентированного программирования (ООП) лежит идея объединения в одной структуре данных и действий, которые производятся с этими данными . ООП базируется на трех основных понятиях:
Инкапсуляция – это механизм программирования, который связывает данные с процедурами и функциями, которые манипулируют этими данными. В результате получается новый тип данных – класс.
Наследование – это возможность, позволяющая описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, или родительским. Новый класс — потомком, наследником или производным классом.
Полиморфизм – это возможность определения единого по имени действия (процедуры или функции), применимого одновременно ко всем объектам иерархии наследования, причем каждый объект иерархии может иметь свою особенность реализации этого действия.
Класс в ооп и его основные компоненты.
Объектно-ориентированное программирование построено на понятии класса. Класс определяет новый тип данных, который задает формат объекта. Основными компонентами класса являются данные и процедуры или функции, выполняющие действия над этими данными. Объекты – это экземпляры класса. После создания объект класса будет иметь собственную копию членов данных, которые составляют класс.
Перегрузка функций.
Перегрузка функций состоит в том, чтобы функция с одним именем по-разному выполнялась и возвращала разные значения при обращении к ней с разными по типам и количеству фактическими параметрами.
Для обеспечения перегрузки функций необходимо для каждого имени определить, сколько разных функций связано с ним. Предположим, что функция выбора максимального значения элемента из массива должна работать для массивов типа int, long, float, double. В этом случае придется написать четыре разных варианта функции с одним и тем же именем. Распознавание перегруженных функций при вызове выполняется по фактическим параметрам. Перегруженные функции поэтому должны иметь одинаковые имена, но спецификации их параметров должны различаться по количеству и (или) по типам, и (или) по расположению.. Перегрузка операций производится с помощью специальной функции operator согласно следующей форме: тип operator знак_операции (типы аргументов) {...}. Перегруженная операция может быть определена как компонент класса; в этом случае она имеет один параметр или вообще не имеет параметров. У дружественной перегруженной операции может быть один или два параметра. Поэтому бинарные операции следует перегружать как дружественные.
Уровни доступа к элементам класса.
Уровни доступа к элементам класса могут быть :
public, private, protected.
public разрешает доступ к элементам объекта класса из любой части программы, в которой известен этот объект (общедоступный).
Private(частными) разрешает доступ к элементам объекта класса только из методов этого класса.
Protected(защищенный) определяется для защищенных элементов и разрешает доступ к ним из методов производных классов.
Уровень доступа по умолчанию - private.