Skocz do zawartości

Dziedziczenie klas, jak przekazać zmienną w sekcji tylko klasie potomnej


Integer

Polecane posty

Witam.

Mam nioobowskie pytanie i banalną konstrukcję, część kodu jest na wyrost "dla potomnych" a zmienne są symboliczna aby zaprezentować zasadę na przykładzie.

 

unit Unit1;

interface
 Uses SysUtils;

type
 TDane = record
Path: String;
 end;

 TKlasaRodzic = class
 private { Private declarations }
FDane: TDane;
 public
constructor Create();
destructor  Destroy(); override;
 end;

implementation

constructor TKlasaRodzic.Create();
begin //
 FDane.Path:= GetCurrentDir;              	// pobranie ścieżki dostępu do exe
end;

destructor TKlasaRodzic.Destroy();
begin //

end;

 

unit Unit2;

interface
 Uses Unit1, Dialogs;

type
 TKlasaPotomek = class (TKlasaRodzic )
 private { Private declarations }
 public
constructor Create();
destructor  Destroy(); override;
 end;

implementation


constructor TKlasaPotomek.Create();
begin //
 inherited;                                    	// zapewnia dziedziczenie kodu z klasy rodzica
 ShowMessage(FDane.Path);
end;

destructor TKlasaPotomek.Destroy();
begin //

end;

 

Najprościej było by zapewne do sekcji public ale mi zależy żeby klasy dziedziczyły po sobie a zmienna była widoczna tylko w obrębie klas a nie na zewnątrz, property mi tu nie wychodzi przynajmniej nie w takiej postaci jaką znam

property BleBle: String read FBleBle;

Może inna sekcja?

Link do komentarza
Udostępnij na innych stronach

i wszystko gra :) dzięki

 

 

unit Unit1;

interface
 Uses SysUtils;

type
 TDane = record
Path: String;
 end;

 TKlasaRodzic = class
 private { Private declarations }
 protected   		// dane przekazywane tylko wewnątrz dla klas potomnych
FDane: TDane;
 public
constructor Create();
destructor  Destroy(); override;
 end;

implementation

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...