C++ Membres statiques de classe
Nous pouvons utiliserstaticLe mot-clé est utilisé pour définir des membres de classe comme statiques. Lorsque nous déclarons un membre de classe comme statique, cela signifie que quel que soit le nombre d'objets de la classe créés, il n'existe qu'une seule copie du membre statique.

Les membres statiques sont partagés entre tous les objets de la classe. Si aucune autre instruction d'initialisation n'existe, toutes les données statiques seront initialisées à zéro lors de la création du premier objet. Nous ne pouvons pas placer l'initialisation des membres statiques à l'intérieur de la définition de classe, mais nous pouvons le faire à l'extérieur de la classe en utilisant l'opérateur de résolution de portée.::Pour redéclarer la variable statique afin de l'initialiser, comme indiqué dans l'exemple suivant.
L'exemple suivant aide à mieux comprendre le concept de données membres statiques :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Constructor called. Constructor called. Total objects: 2
Fonctions membres statiques
Si une fonction membre est déclarée comme static, la fonction peut être rendue indépendante de tout objet particulier de la classe. Les fonctions membres statiques peuvent être appelées même lorsqu'aucun objet de classe n'existe,Fonctions statiquesUtilisez simplement le nom de la classe suivi de l'opérateur de résolution de portée::alors nous pouvons y accéder.
Les fonctions membres statiques ne peuvent accéder qu'aux données membres statiques, aux autres fonctions membres statiques et aux autres fonctions extérieures à la classe.
Les fonctions membres statiques ont une portée de classe ; elles ne peuvent pas accéder au pointeur this de la classe. Vous pouvez utiliser des fonctions membres statiques pour déterminer si certains objets de la classe ont été créés.
Différences entre les fonctions membres statiques et les fonctions membres ordinaires :
- Les fonctions membres statiques n'ont pas de pointeur this et ne peuvent accéder qu'aux membres statiques (y compris les variables membres statiques et les fonctions membres statiques).
- Les fonctions membres ordinaires ont un pointeur this et peuvent accéder à n'importe quel membre de la classe ; les fonctions membres statiques n'ont pas de pointeur this.
L'exemple suivant aide à mieux comprendre le concept de fonctions membres statiques :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Inital Stage Count: 0 Constructor called. Constructor called. Final Stage Count: 2autres extensions