Mewakilkan Pembina dalam C : Panduan Komprehensif
Apabila berurusan dengan berbilang pembina yang berkongsi fungsi yang sama, ia menjadi perlu untuk mewakilkan pembinaan untuk menyelaraskan proses permulaan. Walaupun gula sintaksis yang diperkenalkan dalam C x11 memudahkan tugas ini, adalah penting untuk memahami nuansa.
Sintaks Delegasi Pembina
Pendekatan yang betul untuk mewakilkan pembina dalam C melibatkan penggunaan senarai permulaan pembina. Rujuk contoh berikut:
class Bitmap { public: Bitmap(HBITMAP Bmp) { // Construct bitmap } Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { } };
Dalam contoh ini, pembina Bitmap(WORD ResourceID) memulakan peta bit dengan mewakilkan kepada pembina Bitmap(HBITMAP) menggunakan senarai permulaan. Ini mengelak daripada mencipta objek sementara yang tidak perlu atau memperkenalkan ralat.
Pendekatan Salah
Sintaks alternatif yang anda bentangkan, menggunakan badan fungsi untuk memanggil pembina lain, adalah tidak betul. Ini akan menghasilkan objek sementara dan bukannya mewakilkan pembinaan.
Bitmap::Bitmap(WORD ResourceID) { HBITMAP BMP = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED); Bitmap(BMP); // Incorrect, creates a temporary }
Kesimpulan
Untuk mewakilkan pembina dengan berkesan dalam C , adalah penting untuk menggunakan pemulaan pembina senarai. Dengan memanfaatkan teknik ini, anda boleh mengelakkan penciptaan objek yang tidak perlu dan memastikan kecekapan dan kebolehselenggaraan kod.
Atas ialah kandungan terperinci Bagaimanakah Delegasi Pembina Boleh Memperkemaskan Permulaan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!