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ż:

0 komentarzy