Язык программирования C++
- Муслимова А. Г.
- Уроки по языку программирования С++
- Просмотров: 7478
Язык С++. ООП. Классы
ООП – технология разработки сложного программного обеспечения, в которой программа строится из объектов и их взаимосвязей. В программе для представления объекта используется понятие класса.
Класс является абстрактным типом данных, определяемым пользователем и представляет собой модель реального объекта в виде данных и функций для работы с данными. Класс позволяет группировать в одной переменной данные и методы, которые оперируют с этими данными.
Принципы объектно-ориентированного программирования
Инкапсуляция - объединение в одном объекте данных и методов их обработки.
Наследование - создание новых объектов на базе ранее определенных. Новые объекты – потомки сохраняют свойства своих родителей и обладают специфическими свойствами.
Полиморфизм – возможность замещения методов объекта родителя одноименными методами объекта-потомка.
Формат описания класса:
Class
{
private:
описание скрытых элементов
protected:
описание защищенных элементов
public:
описание доступных элементов
};
Данные класса называются полями, а функции, работающие с данными, методами.
Тело класса содержит элементы, сгруппированные по типу доступа к ним:
private – частный,
protected - защищенный,
public- общий, обеспечивающие контроль доступа к элементам класса.
Конструктор– предназначен для инициализации объекта и вызывается автоматически. Основными свойствами конструктора являются:
- Конструктор не возвращает значение, даже void;
- Конструктор, вызываемый без параметров, называется конструктором по умолчанию;
- Конструктор имеет такое же имя, как и класс.
Конструктор описывается:
имя класса (список параметров);
Например: Figura(double);
Конструктор вызывается:
имя_класса имя_объекта (список параметров);
Например: Figura fr(A); // создается объект fr(A)
Деструктор - метод, применяемый для освобождения занимаемой памяти (уничтожения объекта). Деструктор вызывается автоматически.
Основными свойствами деструктора являются:
- Деструктор имеет такое же имя, как и класс, с предшествующим символом тильды (~).
- Деструктор не имеет возвращаемого значения.
Формат записи деструктора
~имя_класса();
Например: ~Figura();
Методы
Методы объявляются в классе прототипом функции, а определение метода задается после объявления класса или в отдельном файле реализации (.cpp)
тип имя_класса ::имя_метода(список формальных параметров)
{
тело функции
}
- Знак перед именем метода определяет принадлежность к классу и называется оператором глобального разрешения
- Методы одного класса могут вызывать друг друга и обращаться к любым полям данных этого класса.
- Порядок следования определения методов в файле не имеет значения.
Для обращения к данным и методам объекта используется оператор точка или оператор стрелка ->.
Например: fr.Area (1)
Рассмотрим пример:
Построить класс для описания плоских геометрических фигур: круг, прямоугольник, трапеция. Предусмотреть методы для создания объектов, определения площади фигур. Написать программу, демонстрирующую работу с эти классом.
Попробуйте добавить в класс еще одну фигуру. Но помните! Конструктора класса должны различаться либо типами данных, либо количеством параметров!!!
Подведем итоги:
- В известном смысле объект представляет модель реального объекта
- Программы на C++ представляют объекты посредством классов.
- Класс, подобно структуре, содержит данные – поля класса и функции - методы, которые работают с этими данными.
- Каждый класс имеет уникальное имя.
- После определения класса можно объявлять объекты этого класса, используя имя класса в качестве типа объекта.
- Для обращения к общим элементам класса используют оператор точку.
- Программы могут определять методы класса внутри или вне определения класса. Если метод определяется вне класса, следует указать имя класса и использовать оператор глобального разрешения.
- К закрытым полям доступ осуществляется только через методы класса.