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

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

Barbara Streisand
發布: 2024-11-20 15:34:19
原創
242 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板