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 :

les structures demande d'info


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut les structures demande d'info
    hello

    Je me pose la question de l'utilité des structures,surtout dans la manière de les employer.

    doit-je les déclarer aux niveau global du code ?
    puis-je dans une fonction obtenir l'adresse de la structure qui ce trouve dans une autre fonction sans que cela soir aux niveau global ?

    dans une structure je compte y placer des tableau de type string (vector) comme il son 4 ou 5 du même type je me dit que c'est mieux de passer une structure en argument a un fonction,plutôt que chaque tableau en référence ?

    Merci de m'avoir lu désoler pour les question un peux simple mai vu que je débute

    P.S Une piste serai la bienvenue ,je ne donne pas de code vu que je ne m'y connaît pas suffisamment, je continue de lire mon livre

    Merci d'avance

  2. #2
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par panthere noire Voir le message
    hello
    bonjour

    Citation Envoyé par panthere noire Voir le message
    Je me pose la question de l'utilité des structures,surtout dans la manière de les employer.

    doit-je les déclarer aux niveau global du code ?
    Ça dépend. Ta structure doit être déclarée là où tu en as besoin. Par exemple, si la structure ne va être utilisée que par une classe, alors le plus simple est de la déclarer seulement pour cette classe (typiquement dans l'en-tête de la classe en question). Si c'est une structure qui peut potentiellement être utilisée par tout le programme, alors oui, il faut la déclarer en global, ou dans un en-tête spécifique que tu incluras lorsque tu auras besoin de cette structure.

    Citation Envoyé par panthere noire Voir le message
    puis-je dans une fonction obtenir l'adresse de la structure qui ce trouve dans une autre fonction sans que cela soir aux niveau global ?
    Oui, en passant la structure en paramètre de ta fonction, ou, si c'est une fonction membre d'une classe, se débrouiller pour que la classe en question possède un pointeur vers cette structure.

    Citation Envoyé par panthere noire Voir le message
    dans une structure je compte y placer des tableau de type string (vector) comme il son 4 ou 5 du même type je me dit que c'est mieux de passer une structure en argument a un fonction,plutôt que chaque tableau en référence ?
    Effectivement. Les structures sont faites pour ça: rassembler plusieurs données en une seule et même entité pour en faciliter la manipulation.

    J'espère avoir débroussaillé un peu
    N'hésites pas à demander plus de précisions si ce que je dis n'est pas clair.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Par défaut
    Bonjours,

    Merci pour ta réponse oui cela m'aide bien, je suppose que de déclarer une structure aux niveaux global est moins bon que de la passer dans les paramètres d'une fonction ?

    Je doit passer l'adresse de la structure d'une fonction a une autre, doit-je le faire avec une référence , ou un pointeur, sachant que les donnée seront très lourde dans les tableaux, il me faut donc éviter une re-copie des donnée mai avidement que je puisse toujours apporter les modification dans la structure ?

    Les tutoriels que j'ai trouver y compris dans le livre que j'ai ne montre pas comment pointer sur une structure,puis de sans servir sans passer par un niveau global il y a un tutoriel quelque par qui me montrerai cela de manière explicite ?

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par panthere noire Voir le message
    je suppose que de déclarer une structure aux niveaux global est moins bon que de la passer dans les paramètres d'une fonction ?
    Effectivement. Comme on dit: "Les variables globales, c'est le mal". Pour tout un tas de raisons, il faut les éviter tant que faire se peut. Mais ce n'est pas toujours ni évident ni clair, par exemple un singleton peut bien souvent n'être qu'un cache à variable globale.
    Enfin bref, c'est une bonne habitude à prendre que d'éviter les variables globales.

    Citation Envoyé par panthere noire Voir le message
    Je doit passer l'adresse de la structure d'une fonction a une autre, doit-je le faire avec une référence , ou un pointeur, sachant que les donnée seront très lourde dans les tableaux, il me faut donc éviter une re-copie des donnée mai avidement que je puisse toujours apporter les modification dans la structure ?
    Alors là, sur ce sujet je t'encourage à chercher un peu sur le forum, il y a quantités de discussions à ce sujet. En gros, pour débrouissailler, il y a trois possibilités pour passer un paramètre (que ce soit une structure ou autre) à une fonction:
    - par copie: MaFonction(MaStructure param)
    Dans ce cas, le paramètre param sera recopié lorsque l'exécution entrera dans la fonction. Donc si tu modifie param dans la fonction, ce n'est pas le même que tu as passé en paramètre lors de l'appel à cette fonction.
    - par référence: MaFonction(MaStructure & param)
    Dans ce cas, c'est juste l'adresse de la structure qui est passée à la fonction. Pas de recopie, c'est souvent la meilleure solution.
    - par pointeur: MaFonction(MaStructure * param)
    C'est assez comparable au passage par référence, mais ce n'est tout de même pas la pareil du tout. Voir les nombreuses discussions à ce sujet. En gros, il est préférable d'utiliser le passage par référence, mais parfois l'utilisation d'un pointeur peut permettre certaines choses impossibles avec une référence. Je crois que le prochain standard va changer un peu ça.

    Citation Envoyé par panthere noire Voir le message
    Les tutoriels que j'ai trouver y compris dans le livre que j'ai ne montre pas comment pointer sur une structure,puis de sans servir sans passer par un niveau global
    Soit c'est un très mauvais tuto, soit tu as mal regardé.

    Citation Envoyé par panthere noire Voir le message
    il y a un tutoriel quelque par qui me montrerai cela de manière explicite ?
    A peu près tous
    Je te conseilles de jeter un coup d'oeil ici: http://cpp.developpez.com/cours/

Discussions similaires

  1. Demande d'infos sur les outils web
    Par gabz57 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 01/04/2011, 16h57
  2. demande d'info sur les iframe
    Par phil3001 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/04/2008, 22h06
  3. Demande d'infos sur WxGlade et les sizers
    Par altadeos dans le forum wxWidgets
    Réponses: 2
    Dernier message: 22/11/2006, 10h44
  4. [JUnit] demande d'info concernant les differents tests en java.
    Par LESOLEIL dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 08/05/2006, 13h55

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