Initialisation d'un attribut static const [Résolu]

Messages postés
30
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
12 janvier 2010
- - Dernière réponse : lolo38550
Messages postés
30
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
12 janvier 2010
- 9 oct. 2009 à 14:55
Bonjour à tous,

J'aimerai pouvoir disposer d'un attribut (protected) _nomClasse qui contiendrait le nom de la classe. Ce nom doit être le même pour toutes les instances de la classe et ne doit pas pouvoir être modifié par ces instances. Pour info, j'utilise la librairie ACE, je code en C++ sous visual studio 2008.

Pour cela, dans MaClasse.h, à l'intérieur de la section "protected":

static const ACE_TString _nomClasse;



Puis je l'initialise dans MaClasse.cpp à l'extérieur de tout bloc de code:

ACE_TString MaClasse::_nomClasse = ACE_TString("MaClasse");



Malheureusement, à la compilation, j'ai l'erreur suivante:

error C2373: '_nomClasse' : redéfinition ; modificateurs de type différents

Auriez-vous des informations, des pistes pour m'aider à initialiser correctement mon attribut ? Je précise que j'ai essayé de l'initialiser en même temps que ça déclaration dans le .h:

static const ACE_TString _sNomClasse = ACE_TString("MaClasse");


mais que j'ai obtenu l'erreur:

error C2864: 'MaClasse::_nomClasse' : seules les données membres static const intégrales peuvent être initialisées dans une classe


Merci d'avance pour votre aide !
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
30
Date d'inscription
mardi 25 juillet 2006
Statut
Membre
Dernière intervention
12 janvier 2010
3
Merci
Finalement, j'ai trouvé le problème,

il suffisait de rajouter le 'const' dans l'initialisation:

const ace_tstring maclasse::_nomclasse = ace_tstring("maclasse");

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de lolo38550