
- •Лабораторная работа №5 массивы и строки
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Одномерные массивы
- •2.2. Строки
- •2.3. Двухмерные массивы
- •2.4. Массивы строк
- •2.5. Многомерные массивы
- •2.6. Инициализация массивов
- •2.7. Массивы переменной длины
- •2.8. Пример
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Лабораторная работа №6 организация циклов
- •2. Домашнее задание и методические указания по его выполнению
- •2.1. Организация цикла
- •2.1.1 Оператор цикла с предусловием while
- •2.1.2 Оператор цикла с постусловием do-while
- •2.1.3 Оператор цикла с параметром for
- •2.2. Пример
- •2.3. Контрольный пример
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Контрольные вопросы
- •5. Задание
- •Лабораторная работа №7 функции
- •2. Домашнее задание и методические указания по его выполнению
- •2.1 Понятие функции
- •2.2. Общий вид функции
- •2.3. Аргументы функций
- •2.4. Виды функций
- •2.5. Прототипы функций
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Лабораторная работа №8 объекты
- •2. Домашнее задание и методические указания по его выполнению
- •2.2. Члены класса. Инициализация членов класса
- •2.3. Конструкторы и деструкторы
- •3. Лабораторное задание и методические указания по его выполнению
- •4. Варианты заданий
- •Библиографический список
2.3. Конструкторы и деструкторы
Существует специальная категория функций-членов, отвечающих за такие действия с объектами, как инициализация, присваивание, управление памятью, преобразование типов и уничтожение. Такие функции называются конструкторами. Они вызываются компилятором неявно каждый раз, когда объект класса определяется или создается оператором new. В объявлении конструктора его имя совпадает с именем класса. Конструкторов в классе может быть множество благодаря понятию перегрузки функции, которое было рассмотрено ранее.
Функция-член, которая выполняет действия обратные конструктору называется деструктором. Деструктор нужен для удаления объекта и очистки памяти при выходе объекта класса из области видимости. Имя деструктора также совпадает с именем класса, но перед ним используется знак “~”.
C++ автоматически вызывает конструкторы и деструкторы для инициализации и очистки объектов класса.
Для конструкторов и деструкторов существуют определенные правила. Ниже представлены правила для конструкторов:
для конструктора не указывается тип возвращаемого значения;
конструктор не может возвращать значения;
конструктор не наследуется;
конструктор не может быть объявлен с модификаторами const, volatile, static или virtual.
Для деструкторов правила немного отличаются:
деструктор не может иметь параметров;
деструктор не может возвращать значения;
деструктор не наследуется;
класс не может иметь более одного деструктора;
деструктор не может быть объявлен с модификаторами const, volatile, static или virtual.
Если в классе отсутствует деструктор, компилятор генерирует деструктор по умолчанию.
Пример:
#include <iostream.h>
class TTime {
private:
int year;
int month;
int day;
int hour;
int minute;
public:
TTime(int m, int d = -1, int y=-1, int hr=-1, int min=-1); //конструктор
~TTime(); //деструктор
void SetTime(int m, int d, int y, int hr, int min);
};
main()
{
TTime t1; //способ вызов конструктора для объекта t1 типа TTime
TTime t2(4,17,2008,16,17); //способ вызов конструктора для объекта t2 типа TTime
TTime now = new TTime(4,17,2008); //вызов конструктора для объекта now типа TTime
TTime *pnow = &now; //указатель на объект now
cout << “Дата и время установлены”;
return 0;
}
TTime::TTime(int m, int d, int y, int hr, int min)
{
cout << ”Создание объекта”;
SetTime(m,d,y,hr,min);
}
TTime::~TTime()
{
cout << ”Удаление объекта”;
}
void TTime::SetTime(int m, int d, int y, int hr, int min)
{
if (m >=0) month = m;
if (d >=0) day = d;
if (y >=0) year = y;
if (hr >=0) hour = hr;
if (min >=0) minute = min;
}
3. Лабораторное задание и методические указания по его выполнению
Изучить создание классов в языке програмирования С++, используя теоретические сведения данного методического пособия, а также на практике реализовать полученные знания в виде программы, выплняющей поставленные задачи с применением классов и методов.
Отчет должен содержать:
Наименование и цель работы.
Краткие теоретические сведения.
Листинг программы и полученные результаты