Typy zagnieżdżone
Adam Boduch
Język Delphi dla .NET, wprowadza nową funkcję deklarowania zagnieżdżonych typów danych. Począwszy od Delphi 2005 taka funkcja istnieje zarówno dla .NET jak i Win32.
Oto przykład:
type
TFiat = class
procedure Jedź; virtual;
type
TMaluch = class
procedure Jedź;
end;
end;
Klasa zagnieżdżona działa identycznie jak zwykła. Może tak samo zawierać w sobie metody oraz pola, ba, może nawet zawierać w sobie inne zagnieżdżone klasy. Jedyna różnica, o jakiej trzeba pamiętać, to deklaracja metody z klasy zagnieżdżonej w sekcji Implementation:
procedure TFiat.TMaluch.Jedź;
begin
end;
Skoro klasa TMaluch
należy do klasy TFiat
, to jej budowa będzie charakterystyczna, tak samo jak wywołanie konstruktora:
var
Klasa : TFiat.TMaluch;
begin
Klasa := TFiat.TMaluch.Create;
Klasa.Jedź;
Klasa.Free;
end;
Wystarczy zapamiętać i nauczyć się deklaracji nowych klas, a klasy zagnieżdżone nie powinny stanowić większego problemu.
Zagnieżdżanie nie tyczy się jedynie klas - w danej klasie mogą być zagnieżdżane zmienne oraz stałe:
type
TMain = class
var
I : Integer;
S : String;
private
const
Foo = 'Hello World';
strict protected
procedure Main;
end;
Procedury czy Funkcje również mogą w sobie zawierać inne procedury czy funkcje.
Zobacz też: