99 votes

Comment puis-je obtenir le nom de classe à partir d’un objet C++ ?

Est-il possible d’obtenir le nom de l’objet aussi?

où je peux aller chercher les noms, quelque chose comme

C++ fournit-il un mécanisme pour y parvenir ?

21voto

Chubsdad Points 14310

utiliser ``

code illustratory en supposant que toutes les inclusions / espaces de noms, etc.

Il est important de se rappeler que ce donne des noms définis par une implémentation.

Pour autant que je sache, il n’y a aucun moyen d’obtenir le nom de l’objet au moment de l’exécution de manière fiable, par exemple « A » dans votre code.

EDIT 2:

20voto

grungegurunge Points 661

Pour obtenir le nom de la classe sans mangling trucs, vous pouvez utiliser la macro func dans le constructeur:

9voto

Alexander Rafferty Points 3853

Voulez-vous que [classname] soit 'one' et que [objectname] soit 'A' ?

Si c’est le cas, ce n’est pas possible. Ces noms sont uniquement des abstractions pour le programmeur et ne sont pas réellement utilisés dans le code binaire généré. Vous pouvez donner à la classe un classname variable statique, que vous définissez sur 'one' et un objectname variable normal que vous assigneriez directement, via une méthode ou le constructeur. Vous pouvez ensuite interroger ces méthodes pour les noms de classe et d’objet.

9voto

sea-kg Points 11

Il suffit d’écrire un modèle simple:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X