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
Patricia Arquetteoriginal
2024-11-15 18:25:03298parcourir

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
    ...
}

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
    ...
}

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!

Déclaration:
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