Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah nama kelas yang disuntik memudahkan menentukan pembolehubah ahli dalam templat kelas C?

Bagaimanakah nama kelas yang disuntik memudahkan menentukan pembolehubah ahli dalam templat kelas C?

Barbara Streisand
Barbara Streisandasal
2024-11-01 15:52:02211semak imbas

How does the injected class name simplify defining member variables in C   class templates?

Menggunakan Nama Kelas dalam Templat Kelas tanpa Parameter Templat

Kod C yang disediakan mentakrifkan Pautan templat kelas dengan pembolehubah ahli awam 'seterusnya ' yang tidak mempunyai hujah nama taip. Ini telah menimbulkan kekeliruan kerana pembolehubah ahli dijangka daripada jenis 'Pautan*'.

Mengikut piawaian C, ini ialah contoh "nama kelas yang disuntik." Dalam skop templat kelas, nama kelas yang disuntik (hanya nama kelas tanpa parameter templat) merujuk kepada templat kelas itu sendiri. Apabila digunakan sebagai nama jenis, ia adalah bersamaan dengan nama kelas diikuti dengan parameter templat yang disertakan dalam kurungan sudut.

Dalam kes kelas Pautan, nama kelas yang disuntik 'Pautan' digunakan untuk pembolehubah ahli 'seterusnya'. Ini pada asasnya adalah tatatanda singkatan yang menganggap jenis pembolehubah 'seterusnya' ialah 'Pautan*' (iaitu, penunjuk kepada objek Pautan dengan jenis elemen E).

Konvensyen ini membolehkan lebih ringkas dan ringkas kod dalam templat kelas. Dengan menggunakan nama kelas yang disuntik, pembolehubah ahli 'seterusnya' merujuk secara langsung kepada jenis kelas itu sendiri, menghapuskan keperluan untuk menyatakan parameter templat secara eksplisit.

Atas ialah kandungan terperinci Bagaimanakah nama kelas yang disuntik memudahkan menentukan pembolehubah ahli dalam templat kelas 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