Re: Rép : Overriding et primitives .

Jean-Pierre Rosen <[email protected]>
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
Pascal a écrit :
> 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 !
Normal, c'est un type différent. Seules les opérations portant sur un 
type sont primitives pour ce type.

> 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 !
Car elle n'existe même pas...
>        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 ?

Le paquetage interne sert quand le profil ferait une opération 
primitive, et qu'on ne le souhaite pas. En Ada, on essaye d'user des 
pointeurs avec modération....

Nota: en 2005, on peut écrire:
function Init (X, Y : Integer) return access Point;

Celle là est primitive, puisqu'elle porte sur le type Point. Ce qui 
compte, c'est le nom du type qui apparait dans la définition de la fonction.
-- 
---------------------------------------------------------
            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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.