Dostęp do pola po dziedziczeniu.

0

mam klasę:

TPos = class
private
  fJakis : integer;
public
  property Jakis : integer read fJakis;
  constructor Create;
  destructor  Destroy; override;
end;

i klasę po niej dziedziczącą:

TCam = class( TPos )
private
public
  constructor Create;
  destructor  Destroy; override;
end;

Chciał bym w konstruktorze klasy TCam nadac wartość polu fJakis, raz na stałe.

constructor TCam.Create;
begin
  inherited Create;
  {Self.Jakis := 7;}
end;

Później ta wartość ma zostać niezmienna dlatego nie chce dawać property write.

Czy jest jakiś sposób, żeby dobrać się do pola klasy nadrzędnej w inny sposób niż property write?

2
   TPos = class
     private
     fJakis:integer;
     public
     property Jakis:integer read fJakis;
     constructor Create(pJakis:integer=0);
   end;
 
   TCam = class( TPos )
      private
      public
      constructor Create;
    end;

constructor TPos .Create(pJakis:integer)
begin
  inherited Create;
  fJakis:=pJakis;
end;

constructor TCam .Create;
begin
  inherited Create(7);
end;

Lub dać w sekcji protected, lub umieścić klasy w tym samym pliku wtedy można dostać się nawet do pola które jest private.

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