Static
Résolu
futur ingenieure
Messages postés
185
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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++?
A voir également:
- Static
- Adresse IP Static fixe - Forum Bbox Bouygues
- Anti static cable lg tv - Forum Téléviseurs
- [JAVA] difference entre static et final ✓ - Forum Programmation
- Static-spartan-neu-s-msn-com.akamaized.net - Forum Windows 10
- The serializable class does not declare a static final serialversionuid field of type long ✓ - Forum Programmation
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...