Programowanie w języku Delphi

Virtual

  • 2010-10-31 18:27
  • 2 komentarze
  • 2845 odsłon
  • Oceń ten tekst jako pierwszy
virtual - słowo kluczowe języka Delphi

Klauzulą virtual można opatrzeć metodę klasy. Staje się wówczas metodą wirtualną. Taką metodę można wówczas przedefiniować w klasie - potomku. Metodę wirtualną deklaruje się stawiając za nagłówkiem metody, słowo kluczowe virtual:

type
  TMyClass = class
  public
    procedure Virtual_Method; virtual;
end;


W działaniu metody dynamiczne i wirtualne są praktycznie takie same. Jedyne co je różni, to sposób wykonywania. Otóż metody wirtualne cechuje większa szybkość wykonania kodu, natomiast metody dynamiczne umożliwiają lepszą optymalizację kodu.

Jak to wygląda od strony kompilatora? Otóż Delphi utrzymuje dla każdej klasy tzw. tablicę VMT (ang. Virtual Method Table). Tablica VMT przechowuje w pamięci adresy wszystkich metod wirtualnych, tak więc niejako przyczynia się do zwiększenia pamięci operacyjnej, jakiej wymaga nasza aplikacja. Można to ominąć, stosując metody dynamiczne, ale - jak mówiłem - wiąże się to z pogorszeniem szybkości wykonywania kodu.

Generalnie zaleca się używanie metod wirtualnych zamiast metod dynamicznych.

Zobacz też:

2 komentarze

wypoker 2007-10-28 12:08

Do poniższego komentarza: Poprawiłem.

Zulowski 2007-05-16 23:08

"... natomiast metody dynamiczne umożliwiają lepszą optymalizację kodu."

"... Można to ominąć, stosując metody dynamiczne, ale - jak mówiłem - wiąże się to z gorszą optymalizacją kodu."
to jak to w koncu jest?