J'ai besoin de connaître la différence, je suis débutant.
Réponses
Trop de publicités?- Les membres statiques sont des membres qui sont des membres partagés uniques communs à tous les objets créés pour une classe particulière, mais les membres non statiques ne le sont pas.
- L'allocation de mémoire n'est effectuée qu'une seule fois et non pas à chaque fois qu'un objet est créé comme les membres non statiques.
- Une seule copie de l'élément de données statique existera, quel que soit le nombre d'objets créés.
- Les fonctions membres statiques ne peuvent accéder qu'aux variables membres statiques, tandis qu'un membre non statique peut être accédé à la fois par des fonctions membres statiques et non statiques.
- Les membres statiques sont efficaces lorsqu'une seule copie des données est suffisante.
Il existe trois types différents de variables "statiques".
-
En dehors des fonctions et des classes, une variable "normale" serait une variable globale. A
static
en dehors d'une fonction n'est pas globale, mais locale au fichier .cpp dans lequel elle est définie. (Ne définissez pas ce type destatic
dans les fichiers d'en-tête) -
À l'intérieur d'une fonction, une variable normale est détruite à la sortie de la fonction. A
static
dans une fonction conserve sa valeur même après la sortie de la fonction. -
Dans une classe, un membre normal appartient à un objet. Un membre statique est partagé entre tous les objets de ce type, et existe même avant la création de tout objet de cette classe.
Les principaux Différence entre "variable statique" et "variable locale".
L'allocation de mémoire du La variable locale est désallouée si son travail est terminé. , d'autre part, l'allocation de mémoire pour les La variable statique reste la même jusqu'à ce que le programme se termine ou qu'elle soit remplacée par une autre valeur du programme. .
Par exemple, supposons que vous utilisez un problème de récursion, si vous utilisez la variable locale pendant l'appel récursif, l'allocation de mémoire de la variable locale est supprimée, pendant le retour de la fonction.
Par contre, si vous utilisez la variable statique, l'allocation mémoire de cette variable restera jusqu'à la fin du programme. Elle conservera ses valeurs lors du retour de la fonction, ou pourra être écrasée par le programme.
- Réponses précédentes
- Plus de réponses