Реферат: Основы программирования в C++

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

Имя конструктора совпадает с именем класса. Например, в классеLocation конструктор имеет следующий вид: Location (int _x, int _y).

Конструктор не возвращает никакого значения, даже void.

Одним из важных свойств конструктора является его автоматический вызов при описании любого объекта какого-либо класса, использующего конструктор, что снимает с программиста задачу своевременного отслеживания инициализации вновь вводимых объектов.

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

Конструкторов в классе может быть много. В этом случае реализуется механизм перегрузки функции.

Если конструкторы не объявлены, компилятор сам создает конструктор без параметров по умолчанию.

Объявление объектов можно проиллюстрировать следующим образом:

void main (void)

{Location NK(0,0), KK(10,10), *PL;

cout<<KK.Getx(); //возвращаемое значение : 10

PL=&NK;

cout<<PL->Gety(); //возвращаемое значение : 0

}

Здесь при объявлении NK(0,0) и KK(10,10) неявно вызываются конструкторы.

cout<<KK.Getx() обращение идет через переменную.

cout<<PL->Gety() обращение идет через указатель.

Конструктор копий

{LocationA(1,1),B,D=A;

… }

Сначала создается объект D и он инициализируется значением объекта A. Для инициализации нужно явно определить конструктор.

В конструкторе копий в качестве параметра используется простая или константная ссылка на объект.

Location::Location([const]Location &S)

{x=S.x; y=S.y}

Для каждого из объектов класса при очистке памяти компилятором создается деструктор по умолчанию. Определяется деструктор следующим образом: ~ имя. Имя деструктора совпадает с именем класса, но с символом ~ (тильда) в начале.

Деструктор решает обратную конструктором задачу, т.е. очищает память.

Если в конструкторе объекта запрашивается динамическая память или открывается файл, то при уничтожении объекта необходимо предусмотреть действия по очистке памяти и закрытию файла. В этом случае пользователю необходимо определять деструктор. Этот деструктор будет вызываться при выходе объекта из области видимости.

Локальные объекты удаляются тогда, когда они выходят из области видимости. Глобальные объекты удаляются при завершении программы.

5. Наследование

К-во Просмотров: 339
Бесплатно скачать Реферат: Основы программирования в C++