програмі вона стає деяким синонімом об'єкта Handle для використання цього об'єкта як єдиного цілого. У загальному випадку можна визначити посилання і на більш складні об'єкти, наприклад, структури чи об'єкти класів. Для наведеного прикладу наступні два оператори будуть еквівалентними:
// Раніше, наприклад, було визначено int First = 0;
* New = First; Next = First;
Використовуючи посилання для більш складних типів даних можна виробляти швидке копіювання об'єктів:
struct R {L [20]; Numb;
}; R First, Second; R & New = Second; main ()
{. Numb = 10; = First;// скопіює вся структура
}
Посилання зручно використовувати в якості параметрів і значень у функціях.
При програмуванні конструкторів існує спеціальний тип конструкторів, що використовує посилання. Такі конструктори називаються конструкторами копіювання-ініціалізації. Наприклад, конструктор може створювати новий об'єкт, копіюючи дані зі старого об'єкта:
class MyOwn {Leng;: (int L) {Leng = L}; (MyOwn &);
}; :: MyOwn (MyOwn & Old)
{
Leng = Old.Leng;
}
3. Деструктори класів
ініціалізація програма конструктор деструкція
Для виконання дій, зворотних вчиняються конструкторами, тобто, наприклад, звільнення замовленої пам'яті, закриття відкритих конструктором файлів і т.п., в С + + запроваджено механізм деструкторів. Деструкція класу викликається автоматично для кожного з об'єктів класу при втраті його з області видимості в програмі. Це відбувається при виході програми з блоку, в якому визначено об'єкт класу. Існування блоку легко визначається за фігурні дужки, відкриває і закриває кожен з блоків. Якщо об'єкт класу визначений глобально, наприклад, перед функцією main (), деструктор для цього об'єкту буде викликаний в самому кінці програми. p align="justify"> Якщо для класу X конструктор класу називається X, то його деструктор називається ~ X.
Найчастіше конструктори і деструктори класів використовують стандартні операції С + + для замовлення та звільнення динамічно розподіляється оперативної пам'яті, відповідно new і delete.
Деструкція автоматично запускається кожного разу, коли програма знищує об'єкт. У наступних уроках ви дізнаєтеся, як створити списки об'єктів, які збільшуються або зменшуються в міру виконання програми. Щоб створити такі динамічні списки, ваша програма для зберігання об'єктів розподіляє пам'ять динамічно (що ви ще не навчилися робити). До теперішнього моменту ви можете створювати і знищувати об'єкти в процес...