委託建構子
委託建構子涉及從建構函式體內呼叫另一個建構子以避免冗餘程式碼執行。
正確方法
提供的第二個程式碼區塊是 C 中建構函式委託的正確實作。它使用建構子的初始化清單:
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
初始化清單
初始化清單可讓您在建構時直接初始化物件。透過將 HBITMAP 值傳遞給初始化清單中的 Bitmap(HBITMAP) 建構函數,您可以將建構委託給其他建構子。
不正確的方法
第一個程式碼區塊嘗試使用以下方式進行委託:
Bitmap(BMP);
但是,這會建立一個臨時Bitmap 對象,並且不會委託給現有的建構子。
委託範圍
請注意,構造函數委託只能發生在構造函數的初始化列表中,而不能發生在構造函數主體中。在體內使用它會導致遞歸構造,這在 C 中是不允許的。
以上是在 C 中委託構造函數的正確方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!