AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem bei Vererbung

Ein Thema von punkt21 · begonnen am 30. Mär 2009 · letzter Beitrag vom 30. Mär 2009
Antwort Antwort
punkt21

Registriert seit: 6. Sep 2008
11 Beiträge
 
#1

Problem bei Vererbung

  Alt 30. Mär 2009, 10:02
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
  Mit Zitat antworten Zitat
Panthrax

Registriert seit: 18. Feb 2005
286 Beiträge
 
Delphi 2010 Enterprise
 
#2

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 10:06
Und das Objekt wird auch so erstellt?
Delphi-Quellcode:
var
  S: TServer;
begin
  S:=TMServer.Create(123); { TMServer }
end;
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
  Mit Zitat antworten Zitat
punkt21

Registriert seit: 6. Sep 2008
11 Beiträge
 
#3

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 13:29
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.
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#4

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 13:49
Häng mal das Projekt an
  Mit Zitat antworten Zitat
punkt21

Registriert seit: 6. Sep 2008
11 Beiträge
 
#5

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 14:56
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
Angehängte Dateien
Dateityp: rar dp_chat_200.rar (513,5 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#6

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 15:11
Create von TMServer ist unter "protected", deshalb wird das geerbte "public" create aufgerufen...
  Mit Zitat antworten Zitat
punkt21

Registriert seit: 6. Sep 2008
11 Beiträge
 
#7

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 15:22
oh.. oaky^^

danke, habs geändert und funktioniert jetz auch.
wer weitere anregungen/kritik hat, darf sie gern noch äußern
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: Problem bei Vererbung

  Alt 30. Mär 2009, 15:26
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 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