Bonsoir
Voil�, j'ai quelques doutes sur ma compr�hension des namespace.
En effet, j'ai dans mon projet une classe abstraite Personnage. Celle-ci d�crit des m�thodes communes � ses filles, � savoir Guerrier, Sorcier...
Pour facilier la compr�hension du code, et pour ne pas bloquer les noms de m�thodes dans l'ensemble du programme, j'ai voulu cr�� un classement � l'aide des espaces de nom.
J'ai donc, dans un premier temps, mis ma classe Personnage dans un namespace Personnage.
Donc une premi�re question : cela ne risque-t-il pas de poser certains probl�mes lors du d�veloppement, �tant donn� que l'espace de nom poss�de le m�me nom que la classe ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 namespace Personnage { class Personnage { ... }; } // FIN namespace
Ensuite, j'ai fais comme suit au classes filles :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 namespace Personnage { namespace Classe { class Guerrier : public Personnage { ... }; } // FIN GUERRIER } // FIN namespace
Donc, pour d�clarer un guerrier, je faisCe code fonctionne.
Code : S�lectionner tout - Visualiser dans une fen�tre � part Personnage::Classe::Guerrier warrior;
Seulement, je pensais que je n'�tais pas oblig� de cr�er l'espace de nom Personnage, �tant donn� que je d�clare une classe du m�me nom.
Donc je croyais que :
fonctionnaient tout aussi bien.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 Personnage::Guerrier warrior; //(sans l'espace de nom Classe) ou Personnage::Classe::Guerrier warrior; // (avec l'espace de nom Classe)
Mais je me rend compte que ce n'est pas le cas. La compilation �chouant.
Pour ma part, je pr�sume que �a vient du fait que la classe Personnage est abstraite (donc non instanciable).
Si certains peuvent �claircir ma petite lanterne, je suis tout ou�e![]()
Partager