Maison > développement back-end > C++ > Comment les variables statiques se comportent-elles dans les fonctions membres en C ?

Comment les variables statiques se comportent-elles dans les fonctions membres en C ?

Patricia Arquette
Libérer: 2024-11-07 21:45:03
original
730 Les gens l'ont consulté

How Do Static Variables Behave within Member Functions in C  ?

Variables statiques dans les fonctions membres en C

En C, les fonctions membres peuvent contenir des variables statiques. Une variable membre statique au sein d'une classe est partagée entre toutes les instances de la classe, quel que soit l'objet sur lequel la fonction est appelée.

Considérons la classe suivante :

class A {
public:
   void foo() {
      static int i;
      i++;
   }
};
Copier après la connexion

Contrairement à En supposant que chaque instance de A aurait sa propre copie de i, il est important de noter qu'il n'y aura qu'une seule instance de i pour l'ensemble du programme. En effet, static int i est déclaré à l'intérieur de la définition de classe et en dehors de toute fonction spécifique, ce qui en fait un membre de la classe elle-même plutôt qu'une variable locale de la fonction foo.

Par conséquent, toute instance d'un objet A affectera le même i partagé et sa durée de vie persistera tout au long de l'exécution du programme. Par exemple :

A o1, o2, o3;
o1.foo(); // i = 1
o2.foo(); // i = 2
o3.foo(); // i = 3
o1.foo(); // i = 4
Copier après la connexion

Dans ce scénario, toutes les instances de A accèdent et modifient la même variable statique i. L'appel de foo sur n'importe quelle instance incrémente le i partagé pour toute la classe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal