Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menentukan fungsi ahli templat di luar definisi kelas dalam C?
Menentukan Fungsi Ahli Templat Di Luar Definisi Kelas
Dalam C , adalah mungkin untuk mentakrifkan fungsi ahli templat di luar definisi kelas sambil mengekalkan akses kepada kedua-dua parameter templat. Teknik ini boleh berguna untuk menyusun kod atau menjajarkan dengan gaya pengekodan tertentu.
Untuk mencapai ini, anda perlu menggunakan pengisytiharan templat bersarang. Sintaks adalah seperti berikut:
<code class="cpp">template<class T> template <class U> void Foo::bar() { /* implementation */ }</code>
Pengisytiharan ini menunjukkan bahawa bar fungsi ialah ahli kelas Foo, dan kedua-dua T dan U ialah parameter templat. Walau bagaimanapun, pelaksanaan sebenar fungsi disediakan di luar definisi kelas.
Sebagai contoh, pertimbangkan coretan kod berikut:
<code class="cpp">template <class T> class Foo { public: template <class U> void bar(); }; template<class T> template <class U> void Foo::bar() { // Implementation using both T and U }</code>
Di sini, bar fungsi dilaksanakan di luar Foo definisi kelas menggunakan perisytiharan templat bersarang. Ini membolehkan anda menggunakan kedua-dua T dan U dalam pelaksanaan fungsi, seolah-olah ia ditakrifkan dalam kelas.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menentukan fungsi ahli templat di luar definisi kelas dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!