Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem bei Vererbung (https://www.delphipraxis.net/131739-problem-bei-vererbung.html)

punkt21 30. Mär 2009 10:02


Problem bei Vererbung
 
hey!

ich habe ein problem bei der vererbung eines constructors.

die oberklasse sieht wie folgt aus:
Delphi-Quellcode:
constructor create(pPortNr: integer); virtual;

constructor TServer.create(pPortNr: integer);
begin
  serverSocket:=TServerSocket.Create(nil);
  serverSocket.Port:=pPortNr;
  serverSocket.OnClientConnect:=incomingConnection;
  serverSocket.OnClientRead:=incomingMessage;
  serverSocket.OnClientDisconnect:=clientDisconnected;
  serverSocket.Open;
  showmessage('uServer');
end;
und so die tochterklasse ist dann wie folgt aufgebaut:

Delphi-Quellcode:
constructor create(pPortNr: integer); override;

constructor TMServer.create(pPortNr: integer);
begin
  showmessage('1');    //zu testzweck
  inherited create(pPortNr);

  UserListe := TListe.init;
end;
mein problem ist: es wird weder die liste initialisiert noch die showmessage ausgegeben.
das inherited create wird jedoch aufgerufen, da der server geöffnet wird und ich auch verbindungen + chatnachrichten verschicken kann.

brauche dringend hilfe, mein lehrer ist auch schon ratlos -.-

mfg

Panthrax 30. Mär 2009 10:06

Re: Problem bei Vererbung
 
Und das Objekt wird auch so erstellt?
Delphi-Quellcode:
var
  S: TServer;
begin
  S:=TMServer.Create(123); { TMServer }
end;

punkt21 30. Mär 2009 13:29

Re: Problem bei Vererbung
 
ja genau. und dann soll halt der TMServer eine eigene TListe haben.
TListe funktioniert, hab ich mit einem externen programm nur für die liste ausprobiert --> läuft.

das problem liegt (soweit ich das weiß), bei dem überschreiben des constructors create, weil nur inherited durchgeführt wird, der rest des neuen constructors wird kurzerhand ignoriert.

worker 30. Mär 2009 13:49

Re: Problem bei Vererbung
 
Häng mal das Projekt an

punkt21 30. Mär 2009 14:56

Re: Problem bei Vererbung
 
Liste der Anhänge anzeigen (Anzahl: 1)
so, hier dann mal das projekt.

es handelt sich um den server. ich möchte die liste initialisieren.
bis jetz sind allerdings noch keine funktionen damit vorhanden. sendet der client eine nachricht nur mit einem '#' wird die liste angesprochen und ich erhalte fehlermeldungen,
weil diese nicht initialisiert wurde.

weitere kritik wird natürlich gerne entgegen genommen ;)

guidok 30. Mär 2009 15:11

Re: Problem bei Vererbung
 
Create von TMServer ist unter "protected", deshalb wird das geerbte "public" create aufgerufen...

punkt21 30. Mär 2009 15:22

Re: Problem bei Vererbung
 
oh.. oaky^^

danke, habs geändert und funktioniert jetz auch.
wer weitere anregungen/kritik hat, darf sie gern noch äußern ;)

Muetze1 30. Mär 2009 15:26

Re: Problem bei Vererbung
 
Zitat:

Zitat von punkt21
wer weitere anregungen/kritik hat, darf sie gern noch äußern ;)

TObject hat schon einen virtuellen Destruktor, also verdeckst du mit deinem diesen und erstellst einen neuen. Von daher: Override!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 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