Static
Résolu
futur ingenieure
Messages postés
133
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
quel est le role du mot clé static en P.O.O c++?
quel est le role du mot clé static en P.O.O c++?
2 réponses
Salut,
Voici un petit lien qui devrait répondre à ta question : https://fr.wikibooks.org/wiki/Programmation_C-C%2B%2B/C%2B%2B_:_La_couche_objet/Donn%C3%A9es_et_fonctions_membres_statiques
Cdlt
Voici un petit lien qui devrait répondre à ta question : https://fr.wikibooks.org/wiki/Programmation_C-C%2B%2B/C%2B%2B_:_La_couche_objet/Donn%C3%A9es_et_fonctions_membres_statiques
Cdlt
J'avoue ne m'en être jamais servi, et c'est pourquoi je n'ai pas réussi à totalement débuger le petit code ci-dessous, mais dans une classe si un membre est déclaré static il sera partagé par toutes les instances de la classe...
Je pense que le principal intérêt doit être (comme je l'ai fait) de pouvoir comptabiliser le nombre d'instance de la classe simultanément utilisé (pour faire un suivi de la mémoire par exemple)
Je pense que le principal intérêt doit être (comme je l'ai fait) de pouvoir comptabiliser le nombre d'instance de la classe simultanément utilisé (pour faire un suivi de la mémoire par exemple)
#include <iostream> class Exemple { private: double x; static int cpt; // compteur commun à tous les objets de la classe public : Exemple(double d=0) // méthode de création { x=d; cpt++; } ~Exemple() // méthode de destruction { cpt--; } void Afficher() { std::cout << "x = " << x << "\tcompteur = " << cpt << std::endl; } }; int main(void) { Exemple a(7.5); a.Afficher(); // x = 7.5 compteur = 1 Exemple b(3.9); a.Afficher(); // x = 7.5 compteur = 2 b.Afficher(); // x = 3.9 compteur = 2 system("PAUSE"); return 0; }
Quand je compile (avec Dev-C++) j'ai un message d'erreur...
[Linker error] undefined reference to `Exemple::cpt' [Linker error] undefined reference to `Exemple::cpt' [Linker error] undefined reference to `Exemple::cpt' Id returned 1 exit statusC'est pour ça que je disais que j'arrivais pas à le débuger...