x1020: Construction d'instance de '%s' contenant des méthodes abstraites '%s.%s' (Delphi)
Remonter à Messages d'erreur et d'avertissement (Delphi)
Le code que vous compilez construit des instances de classes contenant des méthodes abstract.
program Produce; (*$WARNINGS ON*) (*$HINTS ON*) type Base = class procedure Abstraction; virtual; abstract; end; var b: Base; begin b := Base.Create; end.
Une procédure abstract n'existe pas, ainsi il devient dangereux de créer des instances d'une classe contenant des procédures abstract. Dans ce cas, la création de 'b' est la cause de l'avertissement. Toute évocation à 'Abstraction' via l'instance de 'b' créée ici provoquera une erreur d'exécution. Une information sera émise spécifiant que la valeur affectée à 'b' n'est jamais utilisée.
program Solve; (*$WARNINGS ON*) (*$HINTS ON*) type Base = class procedure Abstraction; virtual; end; var b: Base; procedure Base.Abstraction; begin end; begin b := Base.Create; end.
Une solution à ce problème consiste à enlever la directive abstract de la déclaration de procédure, c'est ce que nous avons utilisé ici. Une autre approche du problème serait de dériver une classe de Base puis de fournir une version concrète d'Abstraction. Une information sera émise spécifiant que la valeur affectée à 'b' n'est jamais utilisée.