Классы в C++ предназначены для описания объектов. Их применение позволяет группировать для каждого объекта данные и методы, которые оперируют этими данными, в одной переменной.
Описание класса имеет вид:
1 |
class имя_класса {описание свойств и методов класса} |
Свойства класса - это переменные, методы - функции. К примеру, если описывать класс круг, в качестве свойств подойдут радиус, координаты центра, а методами будут функции поиска площади круга или длины окружности.
Свойства класса описываются идентично обычным переменным:
1 |
тип_данных имя_переменной; |
Только описание размещают внутри фигурных скобок после имени класса:
1 2 3 4 5 6 |
class имя_класса { тип_данных1 имя_переменной1; тип_данных2 имя_переменной2; ... } |
Функции описываются аналогично свойствам:
1 2 3 4 5 6 7 |
class имя_класса { типа_данных1 имя_переменной1; тип_возвращаемого_функцией_значения имя_функции {описание функции} ... } |
Можно описывать функции вне класса:
1 |
тип_возвращаемого_функцией_значения имя_класса::имя_функции {описание функции} |
Существуют два специальных метода класса, вызываемых при создании и удалении объекта типа класс, конструктор и деструктор. Конструктор вызывается автоматически при создании объекта и служит для инициализации полей класса начальными значениями. Для его описания необходимо в классе описать одноименную классу функцию. Для описания деструктора описывают функцию с названием как и у конструктора, только перед ним ставится знак тильды ~.
Свойства и методы класса имеют модификаторы доступа:
- private (свойства и методы используются только внутри класса);
- public (доступны другим функциям и объектам программы);
- protected (доступны при наследовании).
Определение объекта типа класса:
1 |
имя_класса имя_объекта; |
Доступ к свойствам и методам:
1 2 |
имя_объекта.имя_переменной1; имя_объекта.имя_функции(); |
Пример программы содержащей класс круг.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <math.h> // подключаем математические функции #include <iostream.h> // подключаем функции вывода на экран #include <conio.h> // подключаем функцию ожидания нажатия клавиши getch class circle //определяем класс круг { public: double x,y; //координаты центра double r; //радиус double square() {return M_PI*r*r;} // вычисляется площадь круга double length() {return 2*M_PI*r;} // вычисляется длина окружности }; int main( ) { circle A; // определяем объект класса circle A.x=0; // задаём координаты центра и радиус A.y=0; A.r=5; //Выводим длину окружности и площадь круга cout<<A.square()<<" "<<A.length(); getch(); //ожидаем нажатия клавиши return 0; } |