Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > Ada
Ada Forum d'entraide sur la programmation en langage Ada
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/08/2012, 22h56   #1
Emile8
Futur Membre du Club
 
Inscription : mars 2011
Messages : 25
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 25
Points : 18
Points : 18
Par défaut Pointeurs vers les cles clés d'un Containers.Ordered_Maps

A partir d'une structure de données de type Containers.Ordered_Maps dont les éléments sont repérés et ordonnés par l'intermédiaire de clés, est-il possible d'accéder à ces clés via un pointeur (par son adresse).

Voici l'état de ma réflexion sur cette question (je n'ai pas encore essayé de coder pour tester le langage et son compilateur) :
Si la fonction Key(cursor) désigne la clé originale je dois pouvoir accéder à son adresse et j'ai gagné. Mais si elle désigne une simple copie de la clé alors je ne serai pas plus avancé.
Il y a bien entendu toujours la possibilité de faire jouer entre guillemets ce rôle de pointeur à un cursor qui permet d'accéder aussi bien à la clé qu'à son élément. Mais si je veux que ce cursor soit un champ du type élément il y a un problème de circularité dans les déclarations qui ne doit pas pouvoir passer l'étape de la compilation.
Autre possibilité: utiliser un pointeur en guise de clé. Ce sera ma solution de repli si un accès direct à la clé n'est pas possible.
Emile8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2012, 20h42   #2
jovalise
Membre éclairé
 
Inscription : juin 2006
Messages : 767
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : juin 2006
Messages : 767
Points : 328
Points : 328
Bonjour Emilie.


Peut-être qu'en déclarant ta clef comme suit, en mettant ce que tu veux comme type de valeur de clef.
Code ada :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 type Key_Type;
   
   type Key_Handler(Key : access Key_Type) is null record;
   
   type Key_Type is limited
      record
         Value : Natural := 0; -- La clef.
         Handler : Key_Handler(Key_Type'Access);
      end record;


  The_Key : key_type;

begin
  text_io.put_line("Value of The_Key " & natural'image(the_key.handler.value)");
end;


Edit: a ben non, c'est pas possible parce qu'il faut fournir un type non limité. :/
__________________
Mon développement
jovalise est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h24.


 
 
 
 
Partenaires

Hébergement Web