Top.Mail.Ru

Язык С++. ООП. Классы

ООП – технология разработки сложного программного обеспечения, в которой программа строится из объектов и их взаимосвязей. В программе для представления объекта используется понятие класса.

Класс является абстрактным типом данных, определяемым пользователем и представляет собой модель реального объекта в виде данных и функций для работы с данными. Класс позволяет группировать  в одной переменной данные и методы, которые оперируют с этими данными.

Принципы объектно-ориентированного программирования

Инкапсуляция - объединение в одном объекте данных и методов их обработки.

Наследование -  создание новых объектов на базе ранее определенных. Новые объекты – потомки сохраняют свойства своих родителей и обладают специфическими свойствами.

Полиморфизм – возможность замещения методов объекта родителя одноименными методами объекта-потомка.

 

Формат описания класса:

Class

{

private:

описание скрытых элементов

protected:

описание защищенных элементов

public:

описание доступных элементов

};

Данные класса называются полями, а функции, работающие с данными, методами.

Тело класса содержит элементы, сгруппированные по типу доступа к ним:

private – частный,

protected - защищенный,

public- общий, обеспечивающие контроль  доступа к элементам класса.

Конструктор– предназначен для инициализации объекта и вызывается автоматически. Основными свойствами конструктора являются:

  • Конструктор не возвращает значение, даже void;
  • Конструктор, вызываемый без параметров, называется конструктором по умолчанию;
  • Конструктор имеет такое же имя, как и класс.

Конструктор описывается:

имя класса (список параметров);

Например:  Figura(double);

Конструктор вызывается:

имя_класса имя_объекта (список параметров);

Например:  Figura fr(A);       // создается объект fr(A)

Деструктор - метод, применяемый для освобождения занимаемой памяти (уничтожения объекта). Деструктор вызывается автоматически.

Основными свойствами деструктора являются:

  • Деструктор имеет такое же имя, как и класс,  с предшествующим символом тильды (~).
  • Деструктор не имеет возвращаемого значения.

Формат записи деструктора

~имя_класса();

Например:     ~Figura();

Методы

Методы объявляются в классе прототипом функции, а определение метода задается после объявления класса или в отдельном файле реализации (.cpp)

тип имя_класса ::имя_метода(список формальных параметров)

{

тело функции

}

  • Знак перед именем метода определяет принадлежность к классу и называется оператором глобального разрешения
  • Методы одного класса могут вызывать друг друга и обращаться к любым полям данных этого класса.
  • Порядок следования определения методов в файле не имеет значения.

Для обращения к данным и методам объекта используется оператор точка или оператор стрелка  ->.

Например:  fr.Area (1)

Рассмотрим пример:

Построить класс для описания плоских геометрических фигур: круг, прямоугольник, трапеция. Предусмотреть методы для создания объектов, определения площади фигур. Написать программу, демонстрирующую работу с эти классом.

 

Попробуйте добавить в класс еще одну фигуру. Но помните! Конструктора класса должны различаться либо типами данных, либо количеством параметров!!!

 

Подведем итоги:

  1. В известном смысле объект представляет модель реального объекта
  2. Программы на C++ представляют объекты посредством классов.
  3. Класс, подобно структуре, содержит данные – поля класса  и  функции - методы, которые работают с  этими данными.
  4. Каждый класс имеет уникальное имя.
  5. После определения класса можно объявлять объекты этого класса, используя имя класса в качестве типа  объекта.
  6. Для обращения к общим элементам класса используют оператор точку.
  7. Программы могут определять методы класса внутри или вне определения класса. Если метод определяется вне класса, следует указать имя класса и использовать оператор глобального разрешения.
  8. К закрытым полям доступ осуществляется только через методы класса.