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

 C++ Discussion :

Pointeur vers structure dans classe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Par défaut Pointeur vers structure dans classe
    Bonjour,

    J'ai défini une structure dans une classe : struct_test.
    Je souhaite, dans cette classe, définir une variable de type struct_test

    1/ Est il préférable de définir ma variable comme de type struct_test ou bien un pointeur vers celle-ci (*struct_test) ?

    2/ Si il est préférable de choisir l'option pointeur (ce que je préférerais) comme l'initialiser sachant qu'il faut passer par une variable de ce type ?
    Mon pointeur pointe nécessairement vers une variable de type struct_test. Si j'utilise une référence vers cette variable, cela me contraint de garder la variable.

    Merci

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    On ne peut pas vraiment te répondre, cela dépend surtout de ce que tu va faire :

    - Si tu as la création de l'instance de ta structure en même temps que celle de ta classe et la destruction de l'instance de ta structure en même temps que celle de ta classe, mieux vaut utiliser MaStruct x; ;
    - Si la création de l'instance de ta structure est faite avant celle de ta classe mais que les destructions sont faites en même temps, mieux vaut utiliser une référence ;
    - Si tu peux avoir un changement de structure ou une création/destruction indépendante de celles de ta classe, mieux vaut utiliser un pointeur.

    Dans le cas du pointeur, soit tu initialise ton pointeur à NULL soit tu construit un objet dans ton constructeur.
    Après cela dépend aussi de ce que tu veux faire.
    Tu peux très bien construire ta structure en dehors de ta classe et passer un pointeur sur ta structure au constructeur de ta classe.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Par défaut
    Merci.
    Mais un pointeur pointe toujours vers quelque chose qui existe. Cela suppose l'existence d'un objet de type struct_test ?
    Impossible d'utiliser une référence sur une variable locale

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Non, un pointeur ne pointe pas toujours vers un objet existant.
    Sinon on aura beaucoup moins de segfault.

    Pour un pointeur qui ne pointe sur rien, on le met à NULL.
    Après il faut juste vérifier que ton pointeur ne soit pas à NULL avant d'effectuer tes traitements.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    pourquoi voudrais-tu un pointeur ? y'a-t-il une vraie raison que tu peux justifier ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Par défaut
    J'avais plutot retenu qu'il était préférable d'avoir des pointeurs sur des types évolués.

  7. #7
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Il faut avoir des référence ou des pointeurs pour utiliser le polymorphisme.
    Il est aussi préférable d'utiliser des pointeurs ou des références quand on passe un objet pour éviter des copie.

    Mais on peut très bien stocker un objet sans pointeur ni référence si cet objet n'a pas vocation à être dérivé et si son cycle de vie est le même que la classe qui le contient.

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Par défaut
    c'est le cas.

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pointeur vers objet dans un vecteur
    Par julieng31 dans le forum C++
    Réponses: 3
    Dernier message: 27/09/2013, 09h29
  2. [JNA] - Pointeur de structure dans une autre structure
    Par John.BE dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 24/02/2012, 15h02
  3. pointeur vers une autre classe
    Par Invité dans le forum Débuter
    Réponses: 9
    Dernier message: 19/11/2010, 13h10
  4. problème de pointeurs vers structure
    Par fred_sell dans le forum Débuter
    Réponses: 17
    Dernier message: 07/07/2009, 01h33
  5. [C#]Pointeur vers structure
    Par torNAdE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/05/2006, 19h43

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