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 et voici mon code p>
4 Réponses :
string CPractice::name;
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é.
Je pense que vous essayez de compiler avec Vous devez également ajouter GCC code>, lorsque vous devez compiler avec
g ++ code>. Voir Quelle est la différence entre G ++ et GCC? Pour plus d'informations sur cela. P>
chaîne CPRACTICE :: nom; code> ci-dessous de votre définition de classe. P>
Vous avez seulement déclaré Nom code> dans la classe, les variables statiques doivent être définies comme si elles sont si en dehors de la classe:
Depuis le nom est un membre em> statique em> 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): p>