Re: Rép : Overriding et primitives .
Pascal <[email protected]>
| Newsgroups | gmane.comp.lang.ada.france |
|---|---|
| Message-ID | <[email protected]> |
Bonjour.
Par hasard, je suis tombé sur le fait que la définition et
l'utilisation du type pointeur d'un type étiqueté comme type de
retour d'une fonction n'en fait pas une primitive !
Elle ne sera donc pas à redéfinir en cas de dérivation :
package ess_nap1 is
type Point is tagged record
X, Y : Integer;
end record;
type PPoint is access all Point;
function Init (X, Y : Integer) return PPoint; -- not a primitive
procedure Deplace (P : access Point; DX, DY : Integer); --
primitive
type Cercle is new Point with record
R : Integer;
end record;
type PCercle is access all Cercle;
-- function Init (X, Y : Integer) return PCercle; -- n'est
pas à redéfinir !
function Init (X, Y, R : Integer) return PCercle; -- not a
primitive
end ess_nap1;
Quelle est la différence avec la fonction isolée dans un paquetage
interne ?
Cordialement, Pascal Pignard.
http://blady.pagesperso-orange.fr
Le 18 août 08 à 21:45, Pascal a écrit :
> Bonsoir.
> J'ai en effet vu cette technique employée pour mettre des fonctions
> dans des paquetages fils qui n'étaient donc pas héritées lors d'une
> dérivation du type, ce qui d'ailleurs posaient alors d'autres
> problèmes de compatibilité.
>
> De mon point de vue cela ajoute de la "verbosité" au code source
> englobant la fonction pour sa déclaration et pour son corps, alors
> qu'un pragma aurait l'avantage de garder la linéarité des
> opérations sur le type étiquetté.
>
> Je me souviens d'un pragma Java_Constructor chez ObjectAda mais
> c'est dans un contexte différent.
>
> Cordialement, Pascal Pignard.
> http://blady.pagesperso-orange.fr
>
>
>
>> Il suffit de déclarer la fonction dans un sous-paquetage pour
>> l'empecher d'être primitive. J'ai le cas dans AdaControl, où j'ai
>> un constructeur pour le type Basic_Context. Le constructeur
>> s'appelle New_Context dans le sous-paquetage Basic. Comme ça
>> j'écris Basic.New_Context, alors que si je n'avais pas fait de
>> sous-paquetage, j'aurais surement appelé la fonction
>> Basic_New_Context. Bref, on ne peut pas dire que le niveau de
>> paquetage supplémentaire soit vraiment génant...
>>
>> --
>> ---------------------------------------------------------
>> J-P. Rosen ([email protected])
>> Visit Adalog's web site at http://www.adalog.fr
>>
_______________________________________________
Site WWW de l'association Ada-France: http://www.ada-france.org/
[email protected]
http://www.ada-france.org/mailman/listinfo/ada-france