Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh menentukan fungsi ahli templat di luar definisi kelas dalam C?

Bagaimanakah saya boleh menentukan fungsi ahli templat di luar definisi kelas dalam C?

Susan Sarandon
Lepaskan: 2024-11-04 11:09:30
asal
325 orang telah melayarinya

How can I define template member functions outside of a class definition in 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>
Salin selepas log masuk

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

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!

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