Bonjour,
j'aurais besoin d'une petite précision :
une fonction dans une classe peut elle etre virtual, abstract ET overload à la fois ?
Si oui, y a t il un ordre "preferentiel" pour la declaration ?
Merci.
Bonjour,
j'aurais besoin d'une petite précision :
une fonction dans une classe peut elle etre virtual, abstract ET overload à la fois ?
Si oui, y a t il un ordre "preferentiel" pour la declaration ?
Merci.
Je pensais que je pouvais faire un truc du style :
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 TMyClass = class protected ... public ... function GetUser( aID: integer): TUsers; virtual; abstract; overload; function GetUser( aLogin: string): TUsers; virtual; abstract; overload; ... end; TMyClassMy = class(TMyClass) private ... public constructor Create(); destructor Destroy; ... function GetUser( aID: integer): TUsers; override; function GetUser( aLogin: string): TUsers; override; ... end;
Salut,
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
31
32
33
34
35
36
37
38
39
40 type TMaClasse = class protected procedure Test(const int: integer); overload; virtual; abstract; procedure Test(const str: string); overload; virtual; abstract; public procedure TestTest; end; TMaClassDesc = class(TMaClasse) protected procedure Test(const int: integer); override; procedure Test(const str: string); override; end; implementation { TMaClasse } procedure TMaClasse.TestTest; begin Test(4); Test('salut'); end; { TMaClassDesc } procedure TMaClassDesc.Test(const int: integer); begin Showmessage(IntToStr(int)); end; procedure TMaClassDesc.Test(const str: string); begin Showmessage(str); end;
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 with TMaClassDesc.Create do try TestTest; finally Free; end;
Salut
Effectivement, je ne l'avais pas entendu dans ce sens.J'aurais du.
Donc pour répondre à la question initiale de Targan:
L'ordre est effectivement: overload, virtual et abstract.
En précisant overload en dernier, comme je viens de le faire, le compilateur le rejette.
@+ Claudius
Oui tout fonctionne bien qd on met le bon ordre.
Merci à vous tous pour votre aide.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager