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 :

[Debutant] Membre static


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 55
    Par défaut [Debutant] Membre static
    Bonjour à tous,

    Voila j'ai une classe C_fenetre qui permet de crée un objet 'fenetre' en openGL
    pour cela elle utilise une methode qui contient une "liste d'affichage" (met en memoire les intructions openGL pour construire une fentre). Cette methode retourne un indice necessaire à la "liste d'affichage" lors du dessin.

    Mon probleme : il n'y en a pas , tout fonctionne parfaitement bien. Je crée le nombre de fenetres que je veux et elles s'affichent bien.
    Mais après réflexion, je me suis dit que la "liste d'affichage" est la meme pour toute instance 'C_fenetre' donc il semble judicieux que l'indice que retourne cette "liste" soit static (dite moi si je fais fausse route).

    Mes questions =
    Si dans la declaration de ma classe 'C_fenetre' l'identifiant est :
    static GLuint id;
    et que dans le constructeur 'id' est initialise par une fonction membre comme suit :
    this->id = fonctionListeAffichage();
    id va t-il "appeler" fonctionListeAffichage() à chaque instance? (ce n'est pas le but)
    Si oui comment resoudre ce pb? J'ai regardé la FAQ mais j'ai pas tout compris ( c'est pour ne pas dire rien ). Parce que si je dois definir 'id' à l'exterieur de la classe je dois utiliser une variable globale? Je ne peux pas non plus initialiser 'id' à sa déclaration car ce n'est pas une constante?

    Bon tout ca n'est pas tres clair.
    Merci d'avance de m'aider à progresser.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Naelhem
    Si dans la declaration de ma classe 'C_fenetre' l'identifiant est :
    static GLuint id;
    et que dans le constructeur 'id' est initialise par une fonction membre comme suit :
    this->id = fonctionListeAffichage();
    id va t-il "appeler" fonctionListeAffichage() à chaque instance? (ce n'est pas le but)
    Oui.

    Si oui comment resoudre ce pb? J'ai regardé la FAQ mais j'ai pas tout compris ( c'est pour ne pas dire rien ). Parce que si je dois definir 'id' à l'exterieur de la classe je dois utiliser une variable globale? Je ne peux pas non plus initialiser 'id' à sa déclaration car ce n'est pas une constante?
    Une variable statique de classe est une variable globale à portée plus restreinte. Il faut en donner une définition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GLuint LaClasse::id = fonctionListeAffichage();

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 55
    Par défaut
    Merci de ta reponse,

    C'est donc bien une variable global, dont la portée se restreint à la classe.
    C'est plus clair pour moi maintenant.
    Je la déclare donc dans mon .cpp?

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Oui.

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

Discussions similaires

  1. [debutant] non static variable
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 10/12/2005, 14h39
  2. Réponses: 3
    Dernier message: 28/11/2005, 12h15
  3. [Debutant] Problème avec des membres static
    Par Mathieu.J dans le forum Débuter
    Réponses: 4
    Dernier message: 24/08/2005, 17h09
  4. [debutant] Méthode static
    Par iago dans le forum Langage
    Réponses: 12
    Dernier message: 25/11/2004, 17h09
  5. pointeur membre static de classe
    Par Ca$ul dans le forum C++
    Réponses: 3
    Dernier message: 26/08/2004, 13h02

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