コンストラクターの委任
コンストラクターの委任には、冗長なコードの実行を避けるためにコンストラクター本体内から別のコンストラクターを呼び出すことが含まれます。
正解アプローチ
提示された 2 番目のコード ブロックは、 C でのコンストラクター委任の正しい実装です。コンストラクターの初期化リストを使用します。
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
初期化リスト
初期化リストを使用すると、構築時にオブジェクトを直接初期化できます。 HBITMAP 値を初期化リストの Bitmap(HBITMAP) コンストラクターに渡すことにより、構築を他のコンストラクターに委任します。
間違ったアプローチ
最初のコード ブロック
Bitmap(BMP);
を使用して委任を試みますが、これにより一時的なビットマップが作成されます
委任範囲
コンストラクターの委任はコンストラクターの初期化リスト内でのみ発生し、コンストラクター本体内では発生しないことに注意してください。これを本体内で使用すると再帰的な構築が行われることになりますが、これは C では許可されていません。
以上がC でコンストラクターを委任する正しい方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。