Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Der Compiler merkt nicht, dass eine Klasse nicht vollständig implementiert ist

  Alt 14. Jun 2013, 12:30
Delphi-Version: XE2
Folgendes Beispiel:


Header:
Delphi-Quellcode:
type
   TSomeAbstractClass = class abstract
      procedure someAbstractMethod(); virtual; abstract;
   end;
   
   TSomeChildClass = class(TSomeAbstractClass)
      // keine Implementation von someAbstractMethod()
   end;


Implementation
Delphi-Quellcode:
procedure noAbstractError();
type
   TMyClassType = class of TSomeAbstractClass;
const
   myClass: TMyClassType = TSomeChildClass;
var
   myObject: TSomeAbstractClass;
begin

   myObject := myClass.Create(); // Kein Fehler oder Warnung
   myObject := TSomeChildClass.Create(); // Compilerfehler/-Warnung

end;



Was kann ich dagegen tun? Ich möchte einmal oben auf einen Block festgelegt haben, eine Instanz welcher Klasse erstellt wird und nicht in die Falle tappen, aus Versehen Klassen zu instanziieren, die nicht alle Methoden implementiert haben.
  Mit Zitat antworten Zitat