Понятие класса и экземпляра класса
12 Понятие класса и экземпляра класса. Конструкторы и деструкторы
Класс в ЯП С++ - это абстрактный тип данных, который вместе с описанием полей содержит определения функций, предназначенных для работы с этими полями. Класс состоит из данных и методов, они называются элементами класса.
В С++ данные называются полями, а функции обработки данных – методами данного класса.
Пример: класс avto – для описания данных автомобиля, пригнанного в ремонтную мастерскую:
Класс состоит из определения класса и его метода.
Определение (или описание) класса avto:
Class avto{ // класс с именем avto. Далее, в фигурных скобках – описание полей класса avto
Char model[15]; // символьное (Char) поле для модели автомобиля, массив-строка из 15 символов
Рекомендуемые материалы
Char color[10]; // символьное (Char) поле для цвета автомобиля
Char No[10]; // поле номера авто
Void avto_output(); //заголовок метода avto_output(), который работает с полями класса avto,
}; /* а именно выводит на монитор содержимое полей класса. Список параметров
*/ пуст (внутри скобок параметров нет), т.к. метод работает только с данными этого класса;
Метод класса avto:
void avto::avto_output()
{
cout<<"n Model is"<<model;
cout<<"n Color is"<<color;
cout<<"n No is"<<No;
}
Знак (::) - это оператор области видимости, показывает принадлежность метода avto_output() к классу avto.
Экземпляром (или объектом) класса называется переменная, принадлежащая к классу, т.е. его конкретное значение. Например, avto bmv, honda[12] - экземпляры класса avto.
Обратите внимание на лекцию "22 - Круговорот воды в природе".
Bmv означает модель автомобиля, а honda [12] – что модель honda может быть описана 15-ю символами, напр., honda_civic_exi.
Конструктор – это специальный метод, который выделяет память под объект некоторого класса. Имя конструктора совпадает с именем класса, он вызывается каждый раз, когда в программе встречается описание любого объекта (переменной) класса, к которому он принадлежит. Если конструктор не указан, то он генерируется компилятором автоматически. Например, описание
avto volga;
создаст новый объект – переменную volga, для которой компилятор автоматически выделит ячейки памяти. Можно создать конструктор, который не только отведёт память под переменную, но и присвоит её полям начальные значения.
Деструктор – особый метод, предназначенный для освобождения памяти от объекта какого-либо класса. Деструктор является элементом данного класса и может быть только один в данном классе. Имя класса и деструктора совпадают, но перед деструктором ставится значок "тильда". Напр., для класса avto деструктором будет ~ avto