Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menghidupkan Templat Kelas dengan Argumen Templat Lalai dalam C?

Bagaimana untuk Menghidupkan Templat Kelas dengan Argumen Templat Lalai dalam C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 08:01:30367semak imbas

How to Instantiate a Class Template with Default Template Arguments in C  ?

Menentukan Argumen Templat Lalai Apabila Menghidupkan Templat Kelas dengan Argumen Templat Lalai

C 11 memperkenalkan argumen templat lalai untuk menyediakan cara yang ringkas dan mudah untuk tentukan hujah templat apabila membuat templat kelas. Walau bagaimanapun, menyatakan argumen untuk templat kelas dengan argumen templat lalai boleh mengelirukan.

Orang mungkin menjangkakan bahawa hanya mengisytiharkan contoh templat kelas, seperti Foo me;, sudah memadai. Walau bagaimanapun, dalam kes ini, pengkompil akan memerlukan argumen templat dinyatakan secara eksplisit.

Cara yang betul untuk membuat contoh templat kelas dengan argumen templat lalai adalah dengan membiarkan senarai argumen templat kosong. Iaitu, bukannya Foo me;, kodnya hendaklah Foo<> saya;. Ini menunjukkan kepada pengkompil bahawa argumen templat lalai harus digunakan untuk instansiasi kelas.

Sintaks ini konsisten dengan konvensyen untuk memanggil fungsi dengan argumen lalai. Sebagai contoh, fungsi foo dengan satu hujah lalai boleh dipanggil tanpa menyatakan hujah sebagai foo(). Walau bagaimanapun, sintaks argumen mesti masih ada.

Nota: Mulai C 17, adalah mungkin untuk mengisytiharkan contoh templat kelas tanpa menyatakan argumen templat, seperti dalam Foo me; . Tingkah laku ini adalah penyimpangan daripada versi C yang lebih awal dan harus digunakan dengan berhati-hati, kerana ia mungkin tidak disokong oleh semua penyusun.

Atas ialah kandungan terperinci Bagaimana untuk Menghidupkan Templat Kelas dengan Argumen Templat Lalai dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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