Static en C++
Résolu
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
-
ModérateurCe 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; }-
ModérateurCode 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;