Maison >développement back-end >C++ >Pourquoi est-ce que je reçois une erreur « Symbole externe non résolu » (LNK2001) pour les objets statiques ?
Résolution de l'erreur de symbole externe non résolue (LNK2001) pour les objets statiques
Dans une tentative d'attribuer une valeur à un champ statique dans une classe de la méthode principale, vous avez rencontré une erreur inexpliquée, "symbole externe non résolu". Cette erreur indique que l'éditeur de liens n'a pas pu localiser une définition pour la variable membre statique pendant le processus de liaison.
Selon la référence C, une déclaration d'une donnée membre statique à l'intérieur d'une définition de classe n'est pas une définition. Cela signifie que vous ne pouvez pas définir la variable membre statique dans la classe elle-même. Pour résoudre l'erreur, vous devez définir le membre statique en dehors de la classe dans une portée d'espace de noms.
Dans votre cas, vous devez définir la variable membre statique B::a en dehors du B classe, comme suit :
<code class="cpp">A* B::a;</code>
Cela garantit que l'éditeur de liens peut localiser avec succès la définition de la variable membre statique. En suivant la règle de définition unique (ODR), qui garantit qu'il n'y a qu'une seule définition pour chaque entité dans le programme, le compilateur peut résoudre le symbole externe et réussir à lier le code.
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!