Jump to content

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


Integer

Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...