dyrektywy

0

Czolem!
Chcialem sie dowiedziec do czego sluza dyrektywy przy deklaracjach funkcji. chodzi mi o virtual i abstract.

0

<font size="2">virtual:</span> jeżeli masz jakąś klasę bazową i masz w niej procedurę Draw() opatrzoną tą dyrektywą, to w klasie dziedziczącej musisz dostarczyć deklaracji tej funkcji.

type CObiekt = class
   protected:
       Draw(jakiś_parametr:integer):virual;
en;

type CSkrzynka = clas(CObiekt)
   protected:
       Draw(jakiś_parametr:integer):virtual;   // <-- #1
end;

w miejscu #1 nie jest konieczna dyrektywa virtual. Jeżeli jej nie będzie to klasa dziedzicząca z niej (z CSkrzynka) nie musi dostarczyć jest deklaracji.

<font size="2">abstract:</span> nigdy tego nie używałem

0

dzieki, juz rozumiem. a co do abstract to zauwazylem ze funkcja/procedura nie ma kodu. jest tylko deklaracja.

0

Tak jest :) Metoda abstrakcyjna jest metodą dynamiczną lub wirtualną, ale nie musi być na odwrót :) Żeby było ciekawiej, dodam, że tak jak napisałeś, dyrektywa

abstract

informuje, że metoda jest abstrakcyjna (nie jest zaimplementowana, jest to sprawą klas pochodnych), a dyrektywa virtual


 informuje, że jest to metoda wirtualna, którą możemy przedefiniować w klasie pochodnej (w razie czego zerknij na <a href="http://4programmers.net/article.php?id=22">http://4programmers.net/article.php?id=22</a>)
PS. Nie bardzo mi się podoba nazwa "dyrektywa" w odniesieniu do abstract, virtual etc., bo kojarzy mi sięz dyrektywami kompilatora. Jak się na to "poprawnie" mówi? :)
0

Fragment pomocy.

To make a method virtual or dynamic, include the virtual or dynamic directive in its declaration.

0

Fragment pomocy.

To make a method virtual or dynamic, include the virtual or dynamic directive in its declaration.

Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0