[C++] Variable static , ou l'initialiser??
Fermé
tchou93270
Messages postés
13
Date d'inscription
mercredi 21 avril 2010
Statut
Membre
Dernière intervention
27 mai 2010
-
26 mai 2010 à 17:39
tchou93270 Messages postés 13 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 27 mai 2010 - 27 mai 2010 à 10:13
tchou93270 Messages postés 13 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 27 mai 2010 - 27 mai 2010 à 10:13
A voir également:
- [C++] Variable static , ou l'initialiser??
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Initialiser le disque gpt ou secteur de démarrage principal ✓ - Forum Matériel & Système
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Variable TEMP ✓ - Forum Windows 10
2 réponses
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
27 mai 2010 à 00:11
27 mai 2010 à 00:11
L'utilisation d'une variable statique déclarée dans une classe est un peu particulière.
Il faut bien comprendre que cette variable n'appartient pas à un objet instancié de cette classe; il vaut mieux voir cette variable comme faisant partie de la classe.
Il n'est donc nul besoin d'instancier un seul objet de cette classe pour l'utiliser mais il faudra impérativement déclarer cette variable en dehors de la classe; elle est alors iniatialisée et donc utilisable; un exemple:
Comme pour toute variable statique, par défaut la valeur est 0.
Bonne continuation.
Il faut bien comprendre que cette variable n'appartient pas à un objet instancié de cette classe; il vaut mieux voir cette variable comme faisant partie de la classe.
Il n'est donc nul besoin d'instancier un seul objet de cette classe pour l'utiliser mais il faudra impérativement déclarer cette variable en dehors de la classe; elle est alors iniatialisée et donc utilisable; un exemple:
classe exemple { public: exemple() { nbObjet++; } ~exemple() { nbObjet--; } static int nbObjet; } int exemple::nbObjet;
Comme pour toute variable statique, par défaut la valeur est 0.
Bonne continuation.
tchou93270
Messages postés
13
Date d'inscription
mercredi 21 avril 2010
Statut
Membre
Dernière intervention
27 mai 2010
27 mai 2010 à 10:13
27 mai 2010 à 10:13
Salut , merci pour ta réponse, mais ce n'est pas ca qui me bloque. Le problème c'est que j'ai un code et je ne sais pas ou commece le programme principal, apparement le programme passe d'abord au niveau des librairies que j'ai instrumenté.. J'ai initialisé ma variable static au niveau de ce que je pensais être le programme principal (fichier contenant le main) , mais apparement ce n'est pas le cas. Il y a une erreur de segmentation je pense, parce qu'il ne connait pas cette variable static au niveau des librairies.
Comment puis-je faire pour etre sur que ma variable est initialisé au tout début de mon programme principal?
Esce que c'est normal que mon programme ne commence pas au niveau du main, mais passe par mes libraires?
Si vous voulez quelque chose de concret je peux vous fournir le code..
Merci
Comment puis-je faire pour etre sur que ma variable est initialisé au tout début de mon programme principal?
Esce que c'est normal que mon programme ne commence pas au niveau du main, mais passe par mes libraires?
Si vous voulez quelque chose de concret je peux vous fournir le code..
Merci