首頁  >  文章  >  後端開發  >  在 C 中委託構造函數的正確方法是什麼?

在 C 中委託構造函數的正確方法是什麼?

Barbara Streisand
Barbara Streisand原創
2024-11-20 15:34:19151瀏覽

What's the Correct Way to Delegate Constructors in C  ?

委託建構子

委託建構子涉及從建構函式體內呼叫另一個建構子以避免冗餘程式碼執行。

正確方法

提供的第二個程式碼區塊是 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn