Considérez la classe suivante :
class A { void foo() { static int i; i++; } };
Lorsque vous traitez des variables statiques dans les fonctions membres en C, il est Il est crucial de comprendre comment ils se comportent à travers les instances.
Instances multiples et statiques Variables
Contrairement à l'hypothèse selon laquelle chaque instance posséderait sa propre copie de la variable statique, dans ce scénario spécifique, il n'y aura qu'une seule copie de static int i dans l'ensemble du programme. En effet, la classe A est une classe sans modèle et A::foo() est une fonction sans modèle.
Impact de l'instance sur la variable statique
Peu importe de quelle instance de A invoque la méthode foo(), la variable statique partagée i sera affectée. Par exemple, si vous déclarez plusieurs instances de A comme ceci :
A o1, o2, o3;
Appeler foo() sur l'une de ces instances incrémentera la variable i :
o1.foo(); // i = 1 o2.foo(); // i = 2 o3.foo(); // i = 3 o1.foo(); // i = 4
En conclusion, static les variables dans les fonctions membres sont partagées entre toutes les instances de la classe, permettant à n'importe quelle instance d'accéder et de modifier la même valeur.
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!