Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verschachtelte Klassen createn (https://www.delphipraxis.net/42885-verschachtelte-klassen-createn.html)

Nikolas 25. Mär 2005 11:21


Verschachtelte Klassen createn
 
Ich habe zwei Klassen, von der eine als Variable in der anderen genutzt wird.
Jetzt möchte ich im Create der oberen Klasse, die untere gleichzeitig entstehen lassen, also etwa so:

Delphi-Quellcode:
type
Aklasse = class(tobject)
private
  bla: integer;
  sorted: boolean;
public
  Constructor create(sorted: boolean);
  ...
end;

Oberklasse = class(tobject)
private  
  gesamt: integer;
  klasse: Aklasse;
public
  constructor(Anzahl: integer; sorted: boolean);
end;

Implementation

COnstructor aklasse.create(sorted: boolean);
begin
self.sorted:=sorted;
end;

Constructor Oberklasse.create(Anzahl: integer; sorted: boolean);
begin
Gesamt: anzahl;
Oberklasse.klasse := Aklasse.create(sorted);
end;
Wenn ich jetzt aber auf die Klasse zugreifen will, bekomme ich eine AV. Kann mir jemand sagen, wie ich das umgehen kann?

Danke schonmal

SirThornberry 25. Mär 2005 11:26

Re: Verschachtelte Klassen createn
 
es darf nicht
Delphi-Quellcode:
Oberklasse.klasse := Aklasse.create(sorted);
heißen sondern muss
Delphi-Quellcode:
klasse := Aklasse.create(sorted);
heißen. Desweiteren ist es üblich das in Delphi klassen mit einem "T" beginnen. Das würde den ganzen source auch etwas übersichtilicher machen. Also anstelle von "oberklasse", "Toberklasse"

Khabarakh 25. Mär 2005 11:41

Re: Verschachtelte Klassen createn
 
Muss man nicht noch inherited im Konstruktor aufrufen?

Robert_G 25. Mär 2005 15:48

Re: Verschachtelte Klassen createn
 
Zitat:

Zitat von Khabarakh
Muss man nicht noch inherited im Konstruktor aufrufen?

Wenn du nur von TObject erbst wird ja vor deinem Code nur der StiNo-Konstruktor aufgerufen.
Ist nicht sonderlich hübsch, aber in dem Fall sollte es keinen Unterschied machen...

btw: Warum zum Geier schreibt ihr immer TObject als Base class rein? Das sieht doch *piep* aus. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz