Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Makro Templat C Boleh Mensimulasikan Kata Kunci `diri` PHP untuk Rujukan Kendiri Autonomi?
Melaksanakan Jenis Ahli Kendiri Autonomi dalam C dengan Makro Templat
Dalam C , meniru kefungsian kata kunci sendiri PHP menimbulkan cabaran unik. Walaupun mungkin untuk mencipta pelaksanaan khusus kelas menggunakan alias jenis tersuai, pendekatan ini memerlukan penetapan jenis kelas berulang kali, meninggalkan ruang untuk kemungkinan ralat. Untuk menangani perkara ini, penyelesaian yang lebih menyeluruh diperlukan.
Nasib baik, menggunakan gabungan makro templat dan templat variadik, kita boleh mencapai pelaksanaan autonomi kendiri. Begini caranya:
template <typename X, typename...Ts> class Self : public Ts... { protected: typedef X self; };
#define WITH_SELF(X) X : public Self<X> #define WITH_SELF_DERIVED(X,...) X : public Self<X,__VA_ARGS__>
class WITH_SELF(Foo) { void test() { self foo; } };
class WITH_SELF_DERIVED(Bar, Foo, Foo2) { /* ... */ };Pendekatan ini menawarkan cara autonomi dan fleksibel untuk melaksanakan kata kunci kendiri PHP yang setara dalam C , menghapuskan keperluan untuk replikasi kelas manual dan mengurangkan kemungkinan pepijat senyap.
Atas ialah kandungan terperinci Bagaimanakah Makro Templat C Boleh Mensimulasikan Kata Kunci `diri` PHP untuk Rujukan Kendiri Autonomi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!