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

Bagaimana untuk Mendapatkan Nama Kelas Semasa dalam C?

Patricia Arquette
Lepaskan: 2024-11-15 18:25:03
asal
312 orang telah melayarinya

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
    ...
}
Salin selepas log masuk

Untuk Nama Kelas:

#define __CLASS_NAME__ className(__PRETTY_FUNCTION__)

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan