Рассмотрим порядок выполнения конструктора и деструктора при создании простого объекта.
Так как переменная разрушается при выходе из блока её видимости, то в следующем примере сначала будет разрушена переменная b, а потом уже a:
Смотрите также:
Порядок выполнения конструктора и деструктора при наследовании
#include <iostream>
using namespace std;
class myclass
{
public:
myclass() { cout << "Constructor " << endl; }
~myclass() { cout << "Destructor " << endl; }
};
int main(int argc, char *argv[])
{
myclass a;
return 0;
}
Вывод:Constructor DestructorКак наглядно показано выше, в момент создания объекта класса myclass, вызывается его конструктор. В конце программы, по завершению функции main уничтожаются все локальные переменные и объекты. Так, при уничтожении объекта, вызывается его метод деструктора.
Так как переменная разрушается при выходе из блока её видимости, то в следующем примере сначала будет разрушена переменная b, а потом уже a:
#include <iostream>
using namespace std;
class myclass
{
int m_i;
public:
myclass(int i=0) {
m_i = i;
cout << "Constructor " << m_i << endl;
}
~myclass() { cout << "Destructor " << m_i << endl; }
};
int main(int argc, char *argv[])
{
myclass a(1);
{
myclass b(2);
}
return 0;
}
Вывод:Constructor 1 Constructor 2 Destructor 2 Destructor 1
Смотрите также:
Порядок выполнения конструктора и деструктора при наследовании
Комментариев нет:
Отправить комментарий