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 } };
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>();
Menentukan
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!