Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - OOP


Dickmann - Mi 18.09.02 22:32
Titel: OOP
Hallo Leute,

ich programmiere schon eine Weile mit Delphi 5, aber nur "Prozedural"!

Habe versucht mich in OOP einzulesen aber den richtigen Durchblick habe ich leider nicht. Ich kann z.B. keine Instanzen innerhalb einer Instanz erstellen. Könnte mir bitte jemand einen korrekten Code für folgendes Beispiel zukommen lassen:

Es soll eine Instanz A1 aus einer Klasse TA erstellt werden. Weiters sollen mehrere Instanzen B[1], B[2],... aus einer Klasse TB innerhalb der Instanz A1 erzeugt und gelöscht werden können(mit einem dynamic Array). Am besten durch eine Methode "AddB" und "DelB" des Objektes A1.

Dann sollen noch mehrere Instanzen C[1], C[2],... aus einer Klasse TC innerhalb der einzelnen Instanzen B[1], B[2],... erzeugt und gelöscht werden können. z.B.: mit "AddC" und "DelC" der Objekte B[1], B[2],....

Sozusagen eine Baumstruktur!

Die Klassen TA, TB und TA brauchen nicht voneinander abgeleitet zu sein. Variablen und Methoden von A1 sollen von überall sichtbar sein. Die Variablen und Methoden der anderen Instanzen sollen nur aus den Ezeuger-instanzen sichtbar sein;

Danke für jede Hilfe.

Formatierungen entfernt (Tino)
Titel geändert (Tino)


Anonymous - Mi 18.09.02 22:55

Hier ist es so bunt wie in einem Bordell :twisted: Weniger ist oft mehr.

Also so richtig blicke ich nicht durch was du willst. Deshalb fange ich einfach an.


Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  A1: TA
begin
  A1 := TA.Create;
  ...
  A1.Free;
end;


Das gleiche mit Array


Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  B: Array[0..10] of TB
begin
  B[1] := TB.Create;
  ...
  B[1].Free;
end;


Ich hoffe zumindest den Anfang richtig erwischt zu haben. So ganz richtig weiss ich nicht was du willst.

Oder versuchst du eine Klasse zu entwickeln die ihreseits Objekte nutzt?


Dickmann - Mi 18.09.02 23:13

Zitat:
Oder versuchst du eine Klasse zu entwickeln die ihreseits Objekte nutzt?


Ja, es sollen Instanzen von BT also B[1],B[2]... in einer Methode der Instanz A1 erzeugt werden.
Dann sollen auch Instanzen von CT, also C[1],C[2]...usw, in Methoden der Instanzen B[1],B[2], erzeugt werden können.


Anonymous - Mi 18.09.02 23:38

Wenn du ein Objekt in einer Klasse erstellst, dann solltest du das in einer Prozedur machen die auf jeden fall ausgeführt wird. Das Stichwort sollte hier constructor sein. Create Prozedur würde sich dafür gut eignen. Zum freigeben sollte mal einen destructor nehmen.

Ich bin keine Klassen-Profi. Lass dir also das bestätigen was ich geschrieben habe. Es erscheint aber logisch.


LCS - Do 19.09.02 09:13
Titel: Re: >> OOP << (Benötige Hilfe)
Hi Dickmann
mit BBCode kommst du auf jeden Fall schon mal klar. :shock:

Dickmann hat folgendes geschrieben:
Könnte mir bitte jemand einen korrekten Code für folgendes Beispiel zukommen lassen


Sieht ein bisschen so aus als suchst du jemand der deine Hausaufgaben für dich macht. Oder ist es ne Prüfungsaufgabe? :wink:

Poste doch mal deine Ansätze dazu (wenns geht weniger bunt :D ), dann wirst du hier sicherlich mehr unterstützung bekommen, als auf so eine Aufforderung.

Gruss Lothar


aogwaba - Do 19.09.02 17:38

Hi!
Wo genau liegt denn das Problem, Instanzen, Klassen, Klassenmethoden...?

cu
waba