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!