Je voudrais savoir quelle est la différence entre les variables statiques dans un fichier d’en-tête et déclarées dans une classe. Lorsque la variable statique est déclarée dans un fichier d’en-tête, sa portée est limitée au fichier .h ou sur toutes les unités. En outre, la variable statique est généralement initialisée dans .cpp fichier lorsqu’elle est déclarée dans un droit de classe? Cela signifie donc que la portée des variables statiques est limitée à 2 unités de compilation?
Réponse
Trop de publicités?Une variable statique déclarée dans un fichier d’en-tête en dehors de la classe se contenu `` dans chaque fichier .c qui inclut l’en-tête. Cela signifie qu’une copie distincte d’une variable portant le même nom est accessible dans chacun des fichiers .c où vous incluez le fichier d’en-tête.
Une variable de classe statique en revanche est `` et la même variable statique est disponible pour chaque unité de compilation qui inclut l’en-tête contenant la classe avec variable statique.