Bonjour à toutes et tous,
Une fois n'est pas coutume, c'est un code qui compile qui me pose un petit problème :-)
Je suis occupé à rédiger un petit mémo interne sur les classes héritées de TObjectList et pour ce faire, j'ai proposé l'exemple suivant :
Le code compile sans aucun souci et c'est bien là mon problème (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 TMyCLass = class property StringValue: string; end; TMyList = class (TObjectList) protected function GetItem(Index: Integer): TMyClass; procedure SetItem(Index: Integer; AObject: TMyClass); public function Add(AObject: TMyClass): Integer; function First:TMyClass; function Last:TMyClass; function Extract( Item:TMyClass):TMyClass; procedure Insert(Index: Integer; AObject: TMyClass); property Items[index:integer]:TMyClass read GetItem write SetItem; default; end; implementation { TMyList } //------------------------------------------------------------------------------ function TMyList.Add(AObject: TMyClass): Integer; begin result := inherited add( AObject); end; // Etc. //...) : Je m'attendais à me faire reprendre par le compilateur car mes méthodes de TMyList masquent les définitions originales de TObjectList.
Or il n' en est rien. J'ai vérifié mes options de compilation et tous les messages sont activés. Ce code compile aussi bien sous Delphi2 2006 que sous Xe2 sans aucun avertissement.
Quelqu'un pourrait-il m'expliquer pourquoi Delphi considère ce code comme correct ? Où se situe mon erreur de compréhension ?
Merci d'avance,
Coyotte
Partager