Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Nama Kelas Semasa dalam C?

Bagaimana untuk Mendapatkan Nama Kelas Semasa dalam C?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 18:25:03337semak imbas

How to Get the Current Class Name in C  ?

Makro KELAS Setara dalam C

Dalam C , tidak seperti makro FUNGSI yang menyediakan nama fungsi semasa, tiada makro terbina dalam yang secara langsung memberikan nama semasa kelas.

Penyelesaian

Seperti yang dinyatakan dalam jawapan yang disediakan, kefungsian yang serupa boleh dicapai menggunakan kaedah typeid(*this).name(). Walau bagaimanapun, kaedah ini mempunyai had apabila digunakan dalam kaedah statik.

Untuk kaedah statik dan senario umum, pendekatan alternatif menggunakan makro tersedia. Satu pendekatan melibatkan penggunaan makro PRETTY_FUNCTION:

Untuk Nama Kaedah:

#define __METHOD_NAME__ methodName(__PRETTY_FUNCTION__)

inline std::string methodName(const std::string& prettyFunction) {
    // Extract and return the method name
    ...
}

Untuk Nama Kelas:

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)

inline std::string className(const std::string& prettyFunction) {
    // Extract and return the class name
    ...
}

Perhatikan bahawa pendekatan ini bergantung pada PRETTY_FUNCTION makro, yang khusus untuk penyusun tertentu seperti gcc.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama Kelas Semasa dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn