Maison >développement back-end >C++ >Comment les variables statiques se comportent-elles dans les fonctions membres en 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++; } };
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
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!