В ООП существует три основных принципа построения классов:
- Инкапсуляция — это свойство, позволяющее объединить в классе и данные, и методы, работающие с ними и скрыть детали реализации от пользователя.
- Наследование — это свойство, позволяющее создать новый класс-потомок на основе уже существующего, при этом все характеристики класса родителя присваиваются классу-потомку.
- Полиморфизм — свойство классов, позволяющее использовать объекты классов с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Структура объявления классов:
// объявление классов в С++
class
/*имя класса*/
{
private
:
/* список свойств и методов для использования внутри класса */
public
:
/* список методов доступных другим функциям и объектам программы */
protected
:
/*список средств, доступных при наследовании*/
};
Set и get функции, с помощью которых можно манипулировать элементами данных. set-функции инициализируют элементы данных, get-функции позволяют просмотреть значения элементов данных.
Конструктор — специальная функция, которая выполняет начальную инициализацию элементов данных, причём имя конструктора обязательно должно совпадать с именем класса. Важным отличием конструктора от остальных функций является то, что он не возвращает значений вообще никаких, в том числе и void
. В любом классе должен быть конструктор,даже если явным образом конструктор не объявлен, то компилятор предоставляет конструктор по умолчанию, без параметров.
Деструктор -- это спеиальная функция, которая предоставляет возможность отчистить память от внутренних объектов класса, которые потом будут не нужны. Она вызывается перед удалением объектов класса. Это функция с тем же именем, что и класс, но с добавленным в начало знаком тильды (~
).