Рассмотрим порядок выполнения конструктора и деструктора при создании простого объекта.
Так как переменная разрушается при выходе из блока её видимости, то в следующем примере сначала будет разрушена переменная 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
Смотрите также:
Порядок выполнения конструктора и деструктора при наследовании
Комментариев нет:
Отправить комментарий