6
votes

C ++ Symbole externe non résolu non résolu

salut iam beggyer à c ++ j'ai une classe avec des méthodes statiques et je ne peux pas y accéder, il me jette une erreur xxx

et voici mon code xxx


0 commentaires

4 Réponses :


18
votes
string CPractice::name;

2 commentaires

Je pensais que c'est déjà défini quand je l'ai dit.Is fonctionne, merci beaucoup


@Silviomarijic C'est une erreur commune que les gens ont. La raison pour laquelle ce n'est pas une définition est d'éviter d'avoir plusieurs définitions. S'il s'agissait d'une définition et que vous avez inclus l'en-tête, il s'agissait de nombreux autres fichiers, vous auriez plusieurs définitions du même membre statique. Quoi qu'il en soit, n'oubliez pas de dire merci d'accepter la réponse qui vous a le plus aidé.



1
votes

Je pense que vous essayez de compiler avec GCC , lorsque vous devez compiler avec g ++ . Voir Quelle est la différence entre G ++ et GCC? Pour plus d'informations sur cela.

Vous devez également ajouter chaîne CPRACTICE :: nom; ci-dessous de votre définition de classe.


0 commentaires

1
votes

Vous avez seulement déclaré Nom dans la classe, les variables statiques doivent être définies comme si elles sont si en dehors de la classe: xxx


0 commentaires

1
votes

Depuis le nom est un membre statique vous devez l'initialiser :) et ne pas compter sur le constructeur associé à l'instance par défaut.

Ajoutez ceci après les définitions de la classe (oui, je connais son déroutant depuis Votre membre est privé, mais ce n'est qu'une initialisation): xxx


0 commentaires