Rumah > pembangunan bahagian belakang > C++ > Bolehkah Templat Pembina C Wujud Tanpa Parameter Sebenar?

Bolehkah Templat Pembina C Wujud Tanpa Parameter Sebenar?

Barbara Streisand
Lepaskan: 2024-12-11 13:50:11
asal
623 orang telah melayarinya

Can C   Constructor Templates Exist Without Real Parameters?

Bolehkah Templat Pembina Wujud Tanpa Parameter?

Dalam bidang pengaturcaraan C, adalah wajar untuk mencipta kelas bukan templat dengan pembina templat kekurangan hujah. Walau bagaimanapun, kemungkinan konflik dengan pembina lalai mungkin timbul.

Mengatasi Potensi Konflik

Penyelesaian yang mudah melibatkan penentuan pembina templat dalam kelas bukan templat, sebagai dipamerkan di bawah:

class A {
  template<typename U>
  A(U* dummy) {
    // Custom operations here
  }
};
Salin selepas log masuk

Menyelidiki Penyelesaian

Pendekatan ini mengelakkan konflik dengan pembina lalai dengan memperkenalkan hujah tiruan (dummy). Walaupun kehadirannya, hujah ini berfungsi semata-mata sebagai pemegang tempat dan sebenarnya tidak menjejaskan kefungsian pembina. Tujuannya adalah untuk memudahkan penolakan hujah, membenarkan pengkompil membuat kesimpulan parameter templat.

Menerokai Penaakulan

Menentukan hujah templat secara eksplisit apabila menggunakan templat pembina tidak mungkin . Potongan hujah adalah penting untuk menentukan hujah ini. Oleh itu, sintaks:

Foo<int> f = Foo<int>();
Salin selepas log masuk

Menentukan sebagai senarai hujah templat untuk jenis Foo, bukan pembinanya. Tiada tempat yang ditetapkan untuk senarai hujah templat pembina.

Memeriksa Keberkesanan Penyelesaian

Walaupun dengan penyelesaian yang direka, memasukkan argumen tetap diperlukan untuk menggunakan templat pembina . Objektif utama pendekatan ini tidak jelas sepenuhnya.

Atas ialah kandungan terperinci Bolehkah Templat Pembina C Wujud Tanpa Parameter Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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