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 ( ) : Je m'attendais à me faire reprendre par le compilateur car mes méthodes de TMyList masquent les définitions originales de TObjectList.
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. //...
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