C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 12. Конструкторы и деструкторы / Основы Visual C++ / Visual C++

Основы Visual C++
Урок 12. Конструкторы и деструкторы

Среди методов класса есть два специальных, которые называются конструктором и деструктором (вообще то конструкторов может быть несколько, но об этом позже). Методы класса можно называть как угодно, но для конструктора и деструктора правило особое. Имя конструктора всегда совпадает с именем класса, а имя деструктора - это тильда (~) плюс имя класса. Скажем, для класса из прошлого урока конструктор будет называться CMyClass, а деструктор - ~CMyClass. Конструктор вызывается автоматически при создании экземпляра класса, деструктор - при его уничтожении. Давайте добавим в наш класс конструктор и деструктор. Для этого сначала напишите в теле класса строки:

class CMyClass{
public:
    ...
    CMyClass();  //конструктор
    ~CMyClass(); //деструктор
}

В конце файла напишите реализацию:

CMyClass::CMyClass(){
    cout<<"This is constructor\n";
}
CMyClass::~CMyClass(){
    cout<<"This is destructor\n";
}

Запустите программу. Результат будет выглядеть так:

Результат

Как видите, конструктор и деструктор выполнились, хотя мы их и не вызывали.

Конструктор обычно используется для инициализации экземпляра класса (т. е. для задания начальных значений внутренним переменным класса), а деструктор - для выполнения действий, которые надо выполнить при уничтожении экземпляра класса. Например, в деструкторе удобно удалять динамически созданные объекты.

Давайте теперь слегка изменим функцию main():

void main(){
    CMyClass a, b;
    ...

Теперь у нас два экземпляря класса CMyClass, и при запуске программы для каждого из них выполнится свой конструктор и свой деструктор:

Результат