Maison > développement back-end > C++ > Comment obtenir le nom actuel de la classe en C ?

Comment obtenir le nom actuel de la classe en C ?

Patricia Arquette
Libérer: 2024-11-15 18:25:03
original
311 Les gens l'ont consulté

How to Get the Current Class Name in C  ?

Macro CLASS Equivalent en C

En C , contrairement à la macro FUNCTION qui fournit le nom de la fonction actuelle, il n'y a pas de macro intégrée qui fournit directement le nom de la fonction actuelle class.

Solution

Comme mentionné dans la réponse fournie, une fonctionnalité similaire peut être obtenue en utilisant la méthode typeid(*this).name(). Cependant, cette méthode présente des limites lorsqu'elle est utilisée dans des méthodes statiques.

Pour les méthodes statiques et les scénarios généraux, des approches alternatives utilisant des macros sont disponibles. Une approche consiste à utiliser la macro PRETTY_FUNCTION :

Pour le nom de la méthode :

#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)

inline std::string methodName(const std::string& prettyFunction) {
    // Extract and return the method name
    ...
}
Copier après la connexion

Pour le nom de la classe :

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)

inline std::string className(const std::string& prettyFunction) {
    // Extract and return the class name
    ...
}
Copier après la connexion

Notez que cette approche repose sur la Macro PRETTY_FUNCTION, spécifique à certains compilateurs comme gcc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal