Bonjour à tous,
Je suis confronté à un problème lorsque j'essaie d'initialiser un champ de ma classe déclaré static const:
J'ai vu sur certains exemples que ceci était possible (déclaration + définition dans le .h pour les static const de types intégraux).
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
En compilant sous GCC, cela fonctionne aussi, mais c'est en faisant le link que j'obtiens l'erreur : "référence indéfinie vers com::bla::A::MAX".
J'en ai donc déduit qu'il faut définir le membre dans le .cpp, de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
Nouveau problème : si je passe par cette solution, je ne peux plus profiter du static const. Je m'explique : je veux que mon membre MAX puisse être utilisé dans le case d'un switch. Or, si je passe par la fonction, je ne pourrais pas utiliser MAX dans un case, car on ne peut pas y appeler de méthode.
Avez-vous déjà rencontré ce problème ? Est-ce bien GCC qui n'accepte pas la définition dans le .h ?
Désolé, j'ai été un peu long, mais j'espère clair. Merci d'avance pour votre aide !

 

 
		
		 
         
  
			
			




 Initialisation d'un membre static const
 Initialisation d'un membre static const
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 Envoyé par la_urre
 Envoyé par la_urre
					
Partager