Delegasi Pembina dalam C
Dalam C , adalah mungkin untuk mewakilkan satu pembina kepada yang lain, membenarkan penggunaan semula kod permulaan merentas berbilang pembina . Amalan ini boleh memudahkan kod dan mengurangkan pengulangan.
Satu kaedah untuk mencapai delegasi pembina adalah melalui senarai permulaan pembina, seperti yang ditunjukkan dalam contoh kedua yang anda berikan:
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
Dalam contoh ini, pembina untuk Bitmap(WORD ResourceID) mewakilkan kepada Bitmap(HBITMAP), menghantar imej yang dimuatkan sebagai hujah kepada pembina yang diwakilkan. Sintaks ini memastikan bahawa pembina Bitmap(WORD ResourceID) tidak mencipta pembolehubah sementara atau melakukan pengamulaan pendua yang tidak perlu.
Pendekatan alternatif, yang anda persoalkan dalam contoh pertama anda, sememangnya akan mencipta objek Bitmap sementara dan kemudian panggil pembina objek itu dengan HBITMAP yang dihantar ke Bitmap(WORD ResourceID). Walaupun ini mungkin berfungsi dalam beberapa kes, ia bukanlah cara yang paling cekap atau betul untuk mewakilkan pembina.
Oleh itu, adalah disyorkan untuk menggunakan senarai permulaan pembina untuk perwakilan pembina, seperti yang digambarkan dalam coretan kod kedua anda disediakan. Ini memastikan permulaan yang cekap dan betul bagi objek yang sedang dibina. G 4.7.2 dan versi yang lebih baru harus menyokong ciri ini.
Atas ialah kandungan terperinci Bagaimanakah Delegasi Pembina Boleh Dilaksanakan dengan Cekap dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!