Maison >développement back-end >C++ >Comment simuler la fonctionnalité de bloc statique de Java en C ?
Initialisation au chargement du processus ou au chargement de la DLL :
En C , les membres statiques sont initialisés au démarrage du programme ou lorsque la DLL contenant la classe est chargée. Ceci peut être réalisé en déclarant les membres statiques avec le mot-clé extern, comme indiqué ci-dessous :
<code class="cpp">extern int field1; extern int field2;</code>
Dans un fichier source séparé, les membres statiques peuvent être initialisés comme suit :
<code class="cpp">int field1 = ...; int field2 = ...;</code>
Cette approche garantit que les membres statiques sont initialisés avant la création de toute instance de la classe.
Initialisation lors de l'instanciation de première classe :
En C, un idiome courant est pour utiliser le constructeur C pour initialiser les membres statiques. Cependant, cette approche présente plusieurs limites, telles que l'incapacité d'initialiser les membres statiques non const et la nécessité d'une initialisation explicite des membres dans le constructeur.
Une technique plus avancée qui surmonte ces limitations implique l'utilisation d'une fonction d'initialisation statique. , comme indiqué ci-dessous :
<code class="cpp">class MyClass { public: static void initialize() { // Initialization code for static members }</code>
Cette fonction peut être appelée explicitement depuis le constructeur ou depuis une méthode statique pour garantir que les membres statiques sont initialisés avant la création d'une instance de 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!