Re: Notation objet préfixée en Ada 20 05 (bis).

Jean-Pierre Rosen <[email protected]>
Newsgroups gmane.comp.lang.ada.france
Message-ID <[email protected]>
Pascal a écrit :
> Bonjour.
> En effet, j'ai pensé après coup (cette nuit) au discriminant qui 
> s'applique également au type étiquetté :-)
> En effet (bis), ma présentation était inexacte, je PEUX définir une 
> fonction:
>   function Constructor (N : Entier; X, Y : Entier) return TourG;
> mais je DOIS également redéfinir la fonction:
>   function Constructor (N : Entier) return TourG;
> Assez lourd, passons.
Je pense que c'est pareil dans tous les langages: on peut rajouter des 
constructeurs, mais pas se débarrasser des constructeurs hérités.

> Je vois bien le code de la première:
>   function Constructor (N : Entier; X, Y : Entier) return TourG is
>   T : TourG := Constructor (N);
>   begin
>   T.X := X; T.Y := Y;
>   return T;
>   end;
Ou plus simplement:
    function Constructor (N : Entier; X, Y : Entier) return TourG is
    begin
       return (Tour'(Constructor (N)) with X => X, Y => Y);
    end;
Ce qui appelle automatiquement le constructeur de la super-classe.

Du coup, on peut définir:
       function Constructor (N : Entier) return TourG is
       begin
          return Constructor (N, 0, 0);
       end Constructor;
Ce qui est plus logique: le constructeur simple appelle le constructeur 
complet avec des valeurs par défaut.
-- 
---------------------------------------------------------
            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.