Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah anda boleh mencapai pengkhususan separa fungsi ahli dalam kelas templat dalam C?
Pengkhususan Separa Fungsi Ahli Kelas
Tidak seperti fungsi biasa, pengkhususan sebahagiannya hanya fungsi ahli dalam kelas templat tidak dibenarkan dalam C . Sebaliknya, adalah perlu untuk mengkhususkan sebahagian keseluruhan kelas.
Untuk mencapai pengkhususan separa fungsi ahli, langkah berikut perlu diambil:
Contohnya, untuk mencipta pengkhususan separa untuk fungsi ahli Deform() dalam kod yang diberikan dengan nValue sama dengan 0, kod berikut menunjukkan cara untuk membetulkan kod asal:
// Partial specialization of the Object class for nValue = 0 template <> class Object<int, 0> { private: int m_t; Object(); public: Object(int t): m_t(t) {} int Get() { return m_t; } Object& Deform() { std::cout << "Specialized\n"; m_t = -1; return *this; } };
Dengan pengubahsuaian ini, kod kini akan mengkhususkan sebahagiannya dengan betul Deform() fungsi ahli untuk nValue bersamaan dengan 0.
Atas ialah kandungan terperinci Bagaimanakah anda boleh mencapai pengkhususan separa fungsi ahli dalam kelas templat dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!