Bonjour,
En développant en POO avec Delphi, du moins en essayant, je suis arrivé au message d'erreur suivant :
"un objet constante ne peut être passé comme paramètre var"
Voici le code (d'exemple)
Et voici, un extrait de son utilisation :
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 type Monstre = class end; Piece = class private _m : Monstre; public property m : Monstre read _m write _m; end; Heros = class public procedure combattre(var M : Monstre); end;
C'est sur her.combattre(p.m) (où p est une pièce, et m la property) que le compilateur bloque avec le message d'erreur "un objet constante ne peut être passé comme paramètre var"...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var her : Heros; p : Piece; begin //instanciation puis her.combattre(p.m); //puis libération
Pourquoi ? Passer par une property empêche donc de fournir une variable par adresse ?
Par la suite, j'ai enlevé le paramètre en tant que var (passage par adresse), et là surprise, en enlevant var, l'objet a quand même été passé par adresse !
Bref, il y a anguille sous roche ! Auriez-vous une explication ?
Merci d'avance, Jacques
Partager