Wielokrotne dziedziczenie

0

Problem przedstawia się następująco:

type 
 A = class
  procedure costam;
 end;

 B = class(A)
  procedure costam; override;
 end;

 C = class(B)
  procedure costam; override;
 end;

W procedurze

B.costam

jest wywoływana procedura A.costam

 w następujący sposób: <code class="delphi">inherited costam

. W procedurze C.costam

 potrzebuję wywołać procedurę <code class="delphi">A.costam

z pominięciem wywołania B.costam

. Jak to zrobić?
0

po pierwsze
procedure costam; override;
[Error] Unit1.pas(26): Cannot override a static method ;)

mozesz zrobic klasowa procedure

class procedure C.costam;
begin
A.costam;
end;

0

O co dokładnie chodzi Ci w tej procedurze klasowej?

0

eee .. procedura klasowa to jest to samo co metoda statyczna w innych jezykach, wiec mozna ja wywolywac bez utowrzenia instancji klasy. oczywiscie zauwazylem maly error w moim poscie, a powinna byc klasowa, a c klasowa byc nie musi :)
pamietam, ze nam kiedys nauczyciel tlumaczyl, ze procedura klasowa to taka w ktorej mozna sie do niej odwolywac przez self ( mozna, ale to nie jest jej glowna zaleta ;) )

wiec reasumujac

class procedure A.cos;

procedure C.cos;
begin
A.cos
end;

0

Piknie... Problem tylko w tym, że zarówno A, jak i B z mojego przykładu są już zadeklarowane i ich nie zmienie - tworzę jedynie klasę C dziedzicząc z B.

0

to chyba jedynie

var
aa : A;
begin
aa.costam
end;

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