Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Klassen ableiten


[r2d2] - Mi 03.12.03 18:37
Titel: Klassen ableiten
Hallo
Ich habe mir folgende Klasse erstellt:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
TObj = class
 cfg:Integer;
 ...
 procedure laba(fgz:real);
 procedure doblablabla(xyz:Integer);
 ...
end;


Jetzt will eine weitere klasse, nämlich TSObj, die alle Proceduren, Funktionen und Variablen von TObj hat und mit der ich auch die gleichen Operationen ausführen kann wie mit TObj, Ich müsste also auch in Prozeduren, in denen ich eine Variable vom Typ TObj übergebe eine Variable vom Typ TSObj übergeben können.

Sowas geht doch mit Vererbung, oder? Ich hab davon blos gar keine Ahnung :cry:


Alibi - Mi 03.12.03 18:45
Titel: Re: Klassen ableiten

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
TObj = class
 cfg:Integer;
 ...
 procedure laba(fgz:real);
 procedure doblablabla(xyz:Integer);
 ...
end;

TSObj = class(TObj)
  .
  .
  .
end;


[r2d2] - Mi 03.12.03 22:43

lol, is ja einfach :lol:

danke


[r2d2] - Mi 03.12.03 23:39

Ich hätte noch eine Frage, sie hat aber nicht direkt mit dem topic zu tun. Wie kriegt man sowas denn zum laufen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
TAtype = record
 B: TBtype;
end;

TBtype = record
 A: TBtype;
end;


barfuesser - Do 04.12.03 09:47

Ich nehme mal an, Du meinst im 2. Record: A: TAtype.

In diesem Fall, solltest Du mit Klassen statt der Records arbeiten. Dazu brauchst Du nur record durch class ersetzen und für TBtype eine forward-Deklararion zu schreiben.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
TBtype = class;

TAtype = class 
 B: TBtype; 
end

TBtype = class 
 A: TAtype; 
end;


barfuesser


Motzi - Do 04.12.03 12:38

Anscheinend hast du noch generelle Probleme mit OOP... schau dir vielleicht meine Ausarbeitung darüber an: http://www.x-spy.net/personal