Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
X
- •ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
- •ЛИТЕРАТУРА
- •ВВЕДЕНИЕ В ООП
- •ООП оперирует с таким понятием как класс.
- •Важное свойство класса – детали его реализации скрыты от пользователей класса интерфейсом.
- •Свойства ООП
- •Инкапсуляция:
- •Наследование означает такое соотношение между классами, когда один класс использует структурную или функциональную
- •Иерархия классов представляется в виде древовидной структуры, в которой более общие классы располагаются
- •Полиморфизм – это свойство ООП, при котором одно и тоже имя может вызывать
- •Описание класса
- •private, protected, public – модификаторы уровня доступа.
- •Различают три вида пользователей класса:
- •Пример объявления класса с внешним описанием методов
- •point::point(double xVal, double)
- •Пример объявления класса со встроенными методами
- •Встроенные функции ускоряют работу программы за счёт увеличения исполнимого файла.
- •Метод описанный как внешний можно сделать встроенным с помощью ключевого слова inline.
- •Свойства полей класса:
- •- могут быть описаны с модификатором const, при этом они инициализируются только один
- •// ошибка!!! class point {
- •class Rect { class Point()
- •- внутри локального класса можно использовать типы, static и extern переменные, внешние функции
- •Создание объектов
- •2. Создание объектов с со специальной инициализацией .
- •При создании каждого объекта выделяется память, достаточная для хранения всех его полей, и
- •При выходе объекта из области видимости он уничтожается, при этом автоматически вызывается деструктор.
- •Доступ к элементам объекта аналогичен доступу к полям структуры.
- •Указатель this
- •В явном виде этот указатель применяется в
- •int main()
- •Указатель this можно также применять для идентификации поля класса в том случае, когда
- •Конструкторы
- •-класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации (при
- •-конструкторы не наследуются;
- •Конструктор вызывается, если в программе встретилась какая-либо из синтаксических конструкций:
- •Пример. Использование перегруженных конструкторов.
- •point::point(char *np)
- •Деструкторы
- •Деструктор вызывается автоматически:
- •Между конструктором и деструктором существует ряд различий:
- •class point {… public:
Деструктор вызывается автоматически:
- для локальных объектов – при выходе из блока, в котором они объявлены;
-для глобальных – как часть процедуры выхода из main();
-для объектов, заданных через указатели, деструктор вызывается неявно при использовании операции delete (автоматический вызов деструктора объекта при выходе из области действия указателя на него не производится)
Между конструктором и деструктором существует ряд различий:
- деструкторы могут быть виртуальными, а конструкторы – нет;
-деструкторам нельзя передавать аргументы;
-в каждом классе может быть объявлен только один деструктор.
Имя деструктора состоит из имени класса, перед которым стоит ~ (тильда).
class point {… public:
point () {x=0; y=0;}
~point() {};
…
};