Static en C++
Résolu
jihane jihane
Messages postés
100
Statut
Membre
-
jihane jihane Messages postés 100 Statut Membre -
jihane jihane Messages postés 100 Statut Membre -
Bonjour,
svp pour quoi en déclare une valeur dans un programme C++ comme étant static et merci d'avance pour votre future réponse
svp pour quoi en déclare une valeur dans un programme C++ comme étant static et merci d'avance pour votre future réponse
2 réponses
-
Ce ne sont pas des valeurs que l'on déclare "static", mais des variables, ou des méthodes.
Cela signifie qu'elles ont un comportement "de classe" peu importe l'objet courant this.
Une variable static a donc une seule valeur (éventuellement modifiable) peu importe que l'on utilise un objet a, b, ou c...
Exemple (très approximatif) :
static int x = 0; // compte le nombre d'objets instanciés. MaClasse::MaClasse() { x++; } void MaClasse::~MaClasse() { x--; } void static MaClasse::afficher() { std::cout << x << std::endl; } int main(void) { MaClasse::afficher(); // 0 MaClasse a(); MaClasse::afficher(); // 1 a.afficher(); // 1 { MaClasse b(); MaClasse::afficher(); // 2 a.afficher(); // 2 b.afficher(); // 2 } MaClasse::afficher(); // 1 a.afficher(); // 1 return 0; }-
Code correct à tester (et comprendre)
#include <iostream> class MaClasse { private: static int x; // compte le nombre d'objets instanciés. public: MaClasse() { x++; } ~MaClasse() { x--; } void static afficher() { std::cout << x << std::endl; } }; int MaClasse::x = 0; int main(void) { MaClasse::afficher(); // 0 MaClasse a; MaClasse::afficher(); // 1 a.afficher(); // 1 { MaClasse b; MaClasse::afficher(); // 2 a.afficher(); // 2 b.afficher(); // 2 } MaClasse::afficher(); // 1 a.afficher(); // 1 return 0; } -
-
-
Bonjour,
Statique = constante ?
Déclare ta variable en précédent par exemple int ou double par const.
Exemple:
const int maximum = 100;