IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

[LG]Liste de pointeurs de type pointer


Sujet :

Langage Pascal

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [LG]Liste de pointeurs de type pointer
    Bonjour à tous, voilà j'aimerais remplir une liste chainée dont les cellules contiendraient des pointeurs de type pointer. Cela me permettrait de pointer sur différents types. Est ce possible en pratique?
    Comment la lecture des données d'une telle chaine est elle possible?c'est à dire comment accéder à l'information des pointeurs de la liste vu qu'on ne sait pas forcément quel type est pointé?

    Voilà, je sais pas si j'ai été suffisamment clair...
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Il suffit de déclarer des types objets contenant des pointeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    type
      PCell=^TCell;
      TCell=record
        value: Pointer;
        next: PCell;
      end;
    Tu accèdes aux valeurs pointées ainsi : TCell.value^
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    Salut,

    Pour déterminer le type des tes objets pointés, tu peux avoir un entier qui contient une valeur idientifiant le type. Tu peux également en plus de la solution proposée par wormful_sickfoot, (sauf erreur de ma part) utiliser l'héritage pour avoir une classe de base dont tu dérives les objets pointés par les éléments de la liste chaînée avec des pointeurs du type de la classe de base (polymorphisme). En fait "la meilleure" solution (au moins pas la pire), dépend grandement de ce que qui est pointé et de ce que tu veux en faire. Pourrais-tu détailler un peu ?

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    oui mais comment traiter les données pointées si on ne connait pas leur type? Il s'agirait là de différents types enregistrement.

  5. #5
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Si tu utilises un polymorphisme, il n'y a pas de problème apparemment. Dans le cas de record, tu peux utiliser un champ de TCell pour dire sur quel type de record le pointeur pointe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    type
      TValueType = (record1, record2, record3);
     
      PCell = ^TCell;
      TCell = record
        valueType: TValueType;
        value: Pointer;
        next: PCell;
      end;
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/10/2006, 15h33
  2. Réponses: 1
    Dernier message: 12/02/2006, 17h55
  3. [LG]Liste de pointeurs
    Par kmitz dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2005, 02h57
  4. fuite de memoire dans une liste de pointeur sur composant
    Par Nicolos_A dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/12/2004, 08h46
  5. [LG]liste chainee + pointeur + affichage
    Par k_ro dans le forum Langage
    Réponses: 6
    Dernier message: 17/01/2004, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo