Dnes si dopovíme základy objektově orientovaného programování v Delphi.
Rád bych se zde omluvil všem, kteří do teď čekali na další díl. To bylo způsobeno praktickým nezájmem o něj a mou velkou vytížeností ve škole. Ale nyní se již vrhněme na úkol z minula.
Na začátek uvádím, jak by mělo vypadat řešení úkolu z minulého dílu:
/* definice tříd */
TNasob = class
public
function nasobek(a,b: integer):integer;
end;
TPricti = class(TNasob)
public
function pricti(a, b, c: integer): integer;
end;
TRovnice = class(TPricti)
public
function execute(a, b, c: integer): integer;
end;
/* implementace funkcí */
{ TNasob }
function TNasob.nasobek(a,b: integer):integer;
begin
result := (a*b);
end;
{ TPricti }
function TPricti.pricti(a, b, c: integer): integer;
begin
result := nasobek(a,b) + c;
end;
{ TRovnice }
function TRovnice.execute(a,b,c: integer): integer;
begin
result := inherited pricti(a,b,c);
result := round( result / 2 );
end;
Aplikace tohoto kódu je následná:
procedure TForm1.Button1Click(Sender: TObject);
var r:TRovnice;
begin
button1.Caption := inttostr( r.execute(2,3,2) );
end;
Tento příklad neměl žádné praktické využití, šlo pouze o názornou ukázku dědičnosti tříd a funkcí.
Vzhledem k tomu, že zájem o tento seriál je minimální (do kurzu se přihlásilo všehovšudy 8 lidí), končím se záměrem kurzu ve výuce programování komponent. Jestli s tímto záměrem nesouhlasíte, či se chcete vyjádřit, čekám na vaše komentáře pod článkem.