|
Программирование >> Программирование на языке c++
class а2 constructor class А1 constructor class аТ constructor class a2 constructor class A2 constructor < здесь надо нажать любую клавишу > class А2 destructor class a2 destructor class a1 destructor class A1 destructor class a2 destructor class al destructor Пример 7 демонстрирует объявление массива объектов. #include <iostream.h> #include <conio.h> class a { int j; public: a(int J) : j(J) { cout class a j constructor\n ; } ~a() { cout << class a j destructor\n ; } class A { int i; a a1,a2; public: A(int l=1,int J=2,int K=3) : a1(J),a2(K),i{l) { cout class A i constructor\n ; } ~A() { cout class A i destructor\n ; } void main(void) { A a1[2]; объявление массива внешних объектов getchO; приостановка программы до нажатия л.юбой клавиши Результаты выполнения этой программы представятся в виде: class а2 constructor class аЗ constructor class А1 constructor class a2 constructor class аЗ constructor class A1 constructor < здесь надо нажать любую клавишу > class А1 destructor class аЗ destructor class a2 destructor class A1 destructor class аЗ destructor class a2 destructor В заключение приведем основные правила создания и уничтожения объектов: -♦ глобальные объекты конструируются в порядке их объявления в начале выполнения программы и разрушаются в обратном порядке при завершении программы; -♦ локальные объекты конструируются, когда встречаются их объявления, и разрушаются в обратном порядке при завершении (или удалении из памяти) блока, в котором они объявлены; глобальные статические объекты конструируются в порядке их объявления в начале,выполнения программы и разрушаются в обратном порядке при завершении программы; локальные статические объекты конструируются один раз при первом описании этих объектов и разрушаются при завершении программы; объекты в свободной области памяти конструируются и разрушаются при помощи соответствующих операторов для динамического выделения и освобояодения памяти (например, new и delete); -♦ если объект сконструирован при помощи оператора для динамического выделения памяти (new), то он должен 5 В. А. Скляров 129 быть разрушен явно путем использования оператора для динамического освобождения памяти (delete); если объект является компонентом другого класса, то конструктор объекта вызывается при вызове конструктора класса, в котором он объявлен (правила передачи параметров в конструктор объекта демонстрируются в примере 6). Конструкторы для нескольких компонентов-объектов вызываются в порядке их объявления перед конструктором класса, в котором они объявлены. Все деструкторы вызываются в обратном порядке; можно объявить массив объектов одного типа, однако при этом хотя бы один из конструкторов этих объектов должен иметь параметры, заданные по умолчанию. При объявлении массива объектов невозможно определить параметры для конструкторов этих объектов; конструкторы и деструкторы для массива объектов вызываются по правилам построения и разрушения объектов в определенной области памяти (глобальная память, локальная память, статическая память, свободная память, компоненты-объекты другого класса).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |