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 :

Variables globales / Tableaux globaux ?


Sujet :

C++

  1. #1
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut Variables globales / Tableaux globaux ?
    Bonjour.

    Je bosse actuellement sur un projet scientifique et j'aurai besoin de savoir quelle est la bonne technique "bien propre" pour faire un ou des tableaux "généraux" et communs à l'ensemble du programme dans lequel certains objets de mon programme pourront venir chercher certaines données/paramètres de configuration généraux (je précise que je n'ai pas une maîtrise de tous les aspects du C++, il y a donc peut être quelque chose d'évident auquel je n'ai pas pensé).

    Merci.

  2. #2
    Membre averti
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Points : 311
    Points
    311
    Par défaut
    Il existe en C++ dans la STL tout un ensemble de "container" tel les "list', "vector" "map" qui permettent de stocker des données. Chacun a ses avantages et ses inconvénients en fonction de ton besoin. Si tu dois manipuler des tableaux de données numériques de type matrices il existe des librairies du type LAPACK++ qui fournissent déjà tout ce qui faut.

    Il n'existe pas de méthode "bien propre" générale, tout est fonction de ton besoin et de tes contraintes (temps d'accés, occupation mémoire etc.)

  3. #3
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut
    Merci de ta réponse, mais en fait, ce n'est pas le stockage des données qui me pose problème. Ce qui me pose problème c'est l'aspect "global" et "commun à tout le programme". Les variables globales étant souvent comparées à l'une des pire choses au monde après "Comic Sans MS", je me demandais comment faire ça "proprement".

    Merci beaucoup

  4. #4
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    Si tu veux faire quelque chose de globale, créer un tableau static.


    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 77
    Points
    77
    Par défaut
    Une idée c'est d'utiliser un "Singleton", un objet static qui sera instancié une seule fois durant toute la durée de vie de ton programme et tu peux y accéder quand tu veux. Il contiendra donc l'ensemble de tes container (tableaux, liste ou ce que tu préfères ...)

    Je te laisse chercher pour son implémentation c'est super simple

  6. #6
    Membre habitué
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Points : 176
    Points
    176
    Par défaut
    Merci, c'était ça que je cherchais !

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par stranger Voir le message
    Une idée c'est d'utiliser un "Singleton", un objet static qui sera instancié une seule fois durant toute la durée de vie de ton programme et tu peux y accéder quand tu veux. Il contiendra donc l'ensemble de tes container (tableaux, liste ou ce que tu préfères ...)

    Je te laisse chercher pour son implémentation c'est super simple
    Les Singleton reste dangereux et il ne faut pas trop les utiliser, ni même prendre l'habitude de toujours solutionner à coup de Singleton.
    Certains diront même que c'est un anti pattern.

    http://blog.emmanueldeloget.com/inde...e-singletonite

    Faites votre opinion
    http://c2.com/cgi-bin/wiki?SingletonsAreEvil
    http://c2.com/cgi-bin/wiki?SingletonsAreGood
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2006
    Messages : 80
    Points : 77
    Points
    77
    Par défaut
    Merci pour ton article il est intéressant !

    Toutefois le Singleton s'applique dans ce cas et comme cité dans l'article que t'as mentionné :
    "Le but du patron de conception Singleton est de s’assurer qu’une classe a une unique instance, et offre un point d’accès global à celle-ci"

    Comme Kazula a besoin d'une visibilité globale de ces containers il peut se permettre d'utiliser le design pattern en question.

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

Discussions similaires

  1. [XL-2010] Tableaux en variables globales
    Par popi33370 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2014, 17h40
  2. [Tableaux] variable globale
    Par eclipse012 dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2007, 15h55
  3. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 19h22
  4. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 13h59
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 08h34

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