![]() |
Overload + Reintroduce
Hi,
Ich schreibe gerade eine Klasse. Ich möchte das diese Klasse diese beiden Constructoren hat:
Delphi-Quellcode:
Und zwar sollen die Create Methode überladen sein und die Original TObject.Create Methode soll verschwinden.
constructor Create(Hwnd: THandle);
constructor Create(WindowText: String);
Delphi-Quellcode:
So hab ich den Original Constructor weg aber halt ohne zu überladen.
constructor Create(Hwnd: THandle); reintroduce;
Delphi-Quellcode:
geht nicht, weil ich überladen muss und bei
constructor Create(Hwnd: THandle); reintroduce;
constructor Create(Hwnd: THandle); reintroduce;
Delphi-Quellcode:
existiert immernoch die Original Create-Methode -.-
constructor Create(Hwnd: THandle); reintroduce; overload;
constructor Create(Hwnd: THandle); reintroduce; overload; Wie macht man das denn jetzt ? |
Re: Overload + Reintroduce
Äh... das reintroduce einfach weglassen und overload verwenden :gruebel:
|
Re: Overload + Reintroduce
Ne dann bleibt die Original Create Methode auch bestehen...
|
Re: Overload + Reintroduce
ReIntroduce 1x
Overload 2x Wenn du aber von TObject ableitest, wo die Constructoren noch nicht virtuell sind, dann einfach ohne alles. |
Re: Overload + Reintroduce
Zitat:
|
Re: Overload + Reintroduce
Zitat:
Zitat:
|
Re: Overload + Reintroduce
So ganz komme ich sowieso nicht mit: wieso willst du ZWEI konstruktoren in EINER klasse. wozu soll DAS gut sein :stupid:
|
Re: Overload + Reintroduce
Zitat:
|
Re: Overload + Reintroduce
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
Naja bei manchen Klassen ist sowas einfach sinnvoll.
TWindowHandler= class
private public Handle: THandle; constructor Create(Hwnd: THandle); // reintroduce; overload; oder was auch immer... constructor Create(WindowText: String);// reintroduce; overload; oder was auch immer... end; Da kann sich der Benutzer/Programmiere aussuchen was er für einen Parameter angibt. Es gibt so Klassen. Mir fällt jetzt grad keine ein aber es gibt z.B eine Klasse die erwartet als Parameter entweder ein Handle oder irgendwas anderes was ich jetzt nicht weiß. Und ich brauche auch sowas. Im Anhang noch eine Bild. |
Re: Overload + Reintroduce
1. Ohne virtuelle Constructor:
Delphi-Quellcode:
2. mit virtuellem Constructor
Type
TObject1 = Class Public Constructor Create; Destructor Destroy; Override; End; TObject2 = Class(TObject1) Public Constructor Create(AchWasWeissIch: Integer); Overload; Constructor Create(WasAucHImmer: String); Overload; Destructor Destroy; Override; End;
Delphi-Quellcode:
Beides getestet in Delphi - what's the problem?
TObject1 = Class
Public Constructor Create(whatever: TForm); Virtual; Destructor Destroy; Override; End; TObject2 = Class(TObject1) Public Constructor Create(AchWasWeissIch: Integer); ReIntroduce; Overload; Constructor Create(WasAucHImmer: String); ReIntroduce; Overload; Destructor Destroy; Override; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz