Самоучитель C++ Part 001

Page 46

46

Самоучитель C++

myclass::~myclass () { cout « "Удаление. . Лп"; }

void myclass::show() { cout « a « "\n"; } int main() myclass ob; ob.show (); return 0;

}

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

Фактически как конструктор, так и деструктор могут выполнить любой тип операции. Тем не менее считается, что код внутри этих функций не должен делать ничего, не имеющего отношения к инициализации или возвращению объектов в исходное состояние. Например, конструктор в предшествующем примере мог бы рассчитать число pi с точностью до 100 знаков после запятой. Однако применение конструктора или деструктора для действий, прямо не связанных с инициализацией, является очень плохим стилем программирования и его следует избегать.

1. Вспомните, что в созданном в главе 1 классе stack для установки переменной индекса стека требовалась функция инициализации. Это именно тот тип действия, для выполнения которого и придуман конструктор. Здесь представлена улучшенная версия класса stack, где для автоматической инициализации объекта стека при его создании используется конструктор: ^include <iostream> using namespace std; ^define SIZE 10


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.