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 :

portee d'une variable dans "visual studio"


Sujet :

C++

  1. #21
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    OK. Le .net les interdits quand elles sont managés pour les mêmes raison?
    Raphchar.

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Elles ne sont pas si interdites que ça: Une variable membre statique est l'équivalent d'une variable globale, surtout si elle est publique...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #23
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    De ce point de vue c'est vrai.
    Raphchar.

  4. #24
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    Juste une remarque pour dire que les exemples du SDK de directx utilisent les variables globales:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    
    //-----------------------------------------------------------------------------
    // Global variables
    //-----------------------------------------------------------------------------
    LPDIRECT3D9 g_pD3D = NULL; // Used to create the D3DDevice
    LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; // Our rendering device
    
    Raphchar.

  5. #25
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Oui, mais beaucoup d'exemples font des choses questionables. Parfois par soucis de simplicité (vu qu'utiliser une variable globale est généralement plus simple que les alternatives propres, comme SetWindowLongPtr()).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #26
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    ben il faut savoir faire la différence d'un code d'example qui se veut simple et compréhensible de suite, et un code d'un vrai projet avec différentes contraintes (des threads, plusieurs développeurs etc..)

    C'est ça qui est difficile pour quelqu'un qui débute, car souvent les exemples sont donnés en prenant en considération que celui qui les lit connait bien le C++ et sait que dans un vrai projet il ne mettra pas tout dans des variables globales.

    Et bien sûr, quand on dit "il ne faut pas utiliser de variables globales", il faut entendre "il ne faut pas en utiliser, sauf quand tu sauras vraiment pourquoi tu vas en utiliser".

    Aussi, on va trouver toute sorte de variables globales "cachés" dans nos programmes: des singletons, des membres statiques, des constantes...
    (bien sûr il ne faut pas non plus abuser des singletons etc..sous prétexte que c'est le seul design pattern dont on a retenu l'idée mais c'est un autre débat)

    L'idée à comprendre est juste qu'il faut limiter au maximum la portée des variables pour éviter les problèmes.

  7. #27
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    Et bien sûr, quand on dit "il ne faut pas utiliser de variables globales", il faut entendre "il ne faut pas en utiliser, sauf quand tu sauras vraiment pourquoi tu vas en utiliser".
    Martin Fowler, Patterns of Enterprise Application Architecture (je reprends la citation dans le billet sur les singletons) :
    Rappelez vous que toute variable globale est toujours coupable jusqu’à ce que vous ayez prouvé qu’elle est innocente.
    Ce qui revient à ce que tu dis .

Discussions similaires

  1. insérer des valeurs dans une table sql via visual studio
    Par le sportif dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/04/2014, 10h17
  2. Réponses: 6
    Dernier message: 08/07/2008, 11h02
  3. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40
  4. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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