![]() |
Frage zu Abstrakter Klasse
Hallo,
was hat das eigendlich für Auswirkungen, wenn ich eine Klasse als abstract definiere? Ich dachte bis jetzt, dass ich dann davon keine Instanz erstellen kann. So steht es auch in der Hilfe Zitat:
Delphi-Quellcode:
und sie dann so nutze:
TTest = class abstract(TObject)
private name : string; public constructor create(iName:string); procedure ZeigeName; end;
Delphi-Quellcode:
dann klappt das.
procedure TForm1.Button2Click(Sender: TObject);
var t : TTest; begin t := TTest.create('Otto'); t.ZeigeName; t.Free; end; Warum? Hab ich was falsch verstanden? Grüße Thomas |
Re: Frage zu Abstrakter Klasse
Also, ich persönlich erstelle mir immer einen abstrakten Konstruktor.
|
Re: Frage zu Abstrakter Klasse
Äh, das ist etwas missverständlich.
Ab Delphi 2006 kann man eine Klasse als abstrakt markieren (das ging vorher nur auf Methoden). Allerdings verhindert erst der Delphi 2007 Compiler, dass man eine abstrakte Klasse instanzieren kann. |
Re: Frage zu Abstrakter Klasse
hm..
ich habe CodeGear™ Delphi® 2007 für Win32® R2 Version 11.0.2902.10471 es geht aber. Aber unabhängig davon: Eigendlich sollte es nicht gehen. Stimmts? |
Re: Frage zu Abstrakter Klasse
Hab gerade mein Profiel angepaßt da stand noch D 2006
|
Re: Frage zu Abstrakter Klasse
Hallo Thomas,
du hast alles richtig verstanden, nur die Compiler-Truppe bei Borland/CodeGear/Embarcadero hat es offenbar bis heute nicht verstanden, diesen Fehler zu beheben: ![]() Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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