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

Реферат Конструювання програм





endant: function1 ()В» <

};

* pointer = new Descendant (); * pointer_copy = pointer;

pointer-> function1 ();> function2 ();

_copy-> function1 ();

pointer_copy-> function2 ();


У цьому прикладі клас Ancestor визначає дві функції, одну з них віртуальну, іншу - ні. Клас Descendant перевизначає обидві функції. Однак, здавалося б однакове звернення до функцій дає різні результати. На виведення програма дасть наступне:


Descendant: function1 (): function2 (): function1 ()

Ancestor: function2 ()


Тобто, у разі віртуальної функції, для визначення реалізації функції використовується інформація про тип об'єкта і викликається В«правильнаВ» реалізація, незалежно від типу покажчика. При виклику невіртуальної функції, компілятор керується типом покажчика або посилання, тому викликаються дві різні реалізації function2 (), незважаючи на те, що використовується один і той же об'єкт. p align="justify"> Слід зазначити, що в С + + можна, при необхідності, вказати конкретну реалізацію віртуальної функції, фактично викликаючи її Невіртуальна:

pointer-> Ancestor: function1 ();

для нашого прикладу виведе Ancestor: function1 (), ігноруючи тип об'єкта.

Приклад віртуальної функції в Delphi

Мова Object Pascal, що використовується в Delphi, теж підтримує поліморфізм. Розглянемо приклад:

Оголосимо два класи. Предка (Ancestor):


TAncestor = class

private

protected

public

{Віртуальна процедура.}

procedure VirtualProcedure ; virtual;

procedure StaticProcedure ;

end;

і його нащадка (Descendant):

TDescendant = class (TAncestor)

private

protected

public

{Перекриття віртуальної процедури.}

procedure VirtualProcedure; override;

procedure StaticProcedure;

end;


Як видно в класі предка оголошена віртуальна функція -...


Назад | сторінка 2 з 9 | Наступна сторінка





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

  • Реферат на тему: Procedure of preparation business-plan
  • Реферат на тему: Середа розробки і мова програмування Delphi, його графічні засоби
  • Реферат на тему: Віртуальна реконструкція втраченого об'єкта спадщини на прикладі церкви ...
  • Реферат на тему: The Marx's class
  • Реферат на тему: Російський ринок private banking