Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Поглиблене вивчення окремого розділу: стандартні класи С + +

Реферат Поглиблене вивчення окремого розділу: стандартні класи С + +





> Complex (double i_re = 0, double i_im = 0)

: re (i_re), im (i_im)

{}

.// Конструктор копіювання (const Complex & obj)

{= obj.re; = obj.im;

}: re, im;

};


Конструктор копіювання не має обов'язкових аргументів. Використовується при створенні масивів об'єктів, викликаючи для створення кожного екземпляра. У відсутність явно заданого конструктора за замовчуванням його код генерується компілятором (що на початковому тексті, природно, не відбивається). p align="justify"> Конструктор, аргументом якого є посилання на об'єкт того ж класу. Застосовується в C + + для передачі об'єктів у функції за значенням. p align="justify"> Конструктор копіювання в основному необхідний, коли об'єкт має вказівники на об'єкти виділені в купі. Якщо програміст не створює конструктор копіювання, то компілятор створить неявний конструктор копіювання, який копіює покажчики як є, тобто фактичне копіювання даних не відбувається і два об'єкти посилаються на одні й ті ж дані в купі. Відповідно спроба зміни В«копіїВ» зашкодить оригінал, а виклик деструктора для одного з цих об'єктів при подальшому використанні іншого призведе до обігу в область пам'яті, вже не належить програмі. p align="justify">. Аргумент повинен передаватися саме за посиланням, а не за значенням. Це випливає з колізії: при передачі об'єкта за значенням (зокрема, для виклику конструктора) потрібно скопіювати об'єкт. Але для того, щоб скопіювати об'єкт, необхідно викликати конструктор копіювання. p align="justify">. Конструктор, що приймає один аргумент. Задає перетворення типу свого аргументу в тип конструктора. Таке перетворення типу неявно застосовується тільки якщо воно унікальне. p align="justify"> Конструктор не буває віртуальним в сенсі віртуального методу - для того, щоб механізм віртуальних методів працював, потрібно запустити конструктор, який автоматично налаштує таблицю віртуальних методів даного об'єкта.

«³ртуальними конструкторамиВ» називають схожий, але інший механізм, присутній у деяких мовах - наприклад, він є в Delphi, але немає в C + + і Java. Цей механізм дозволяє створити об'єкт будь-якого заздалегідь невідомого класу за двох умов:

В· цей клас є нащадком якогось наперед заданого класу (в даному прикладі це клас TVehicle);

В· на всьому шляху наслідування від базового класу до створюваного ланцюжок перевизначення не обривати. При перевизначенні віртуального методу синтаксис Delphi вимагає ключове слово overload, щоб стара і нова функції з різними сигнатурами могли співіснувати, override для перевизначення функції або reintroduce для завдання нової функції з тим же ім'ям - остання неприпустимо.

Назад | сторінка 3 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Професії: дальнобійник, програміст, конструктор
  • Реферат на тему: Проектування вироби в програмі &Базис-конструктор-мебляр&
  • Реферат на тему: Конструктор наукових сайтів
  • Реферат на тему: М.І. Кошкін - головний конструктор легендарного танка
  • Реферат на тему: Завдання і засоби резервного копіювання і зберігання даних