C でのコンストラクターの委任
C では、1 つのコンストラクターを別のコンストラクターに委任することができ、複数のコンストラクター間で初期化コードを再利用できます。 。これを実践すると、コードを簡素化し、繰り返しを減らすことができます。
コンストラクターの委任を実現する 1 つの方法は、指定した 2 番目の例に示すように、コンストラクターの初期化リストを使用することです。
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
この例では、 Bitmap(WORD ResourceID) のコンストラクターは Bitmap(HBITMAP) に委任し、ロードされたイメージを引数として委任されたコンストラクターに渡します。この構文により、Bitmap(WORD ResourceID) コンストラクターが一時変数を作成したり、不必要な重複した初期化を実行したりしないことが保証されます。
最初の例で質問した別のアプローチでは、確かに一時的な Bitmap オブジェクトを作成してから、 Bitmap(WORD ResourceID) に渡された HBITMAP を使用して、そのオブジェクトのコンストラクターを呼び出します。これは場合によっては機能するかもしれませんが、コンストラクターを委任する最も効率的または正しい方法ではありません。
そのため、2 番目のコード スニペットに示すように、コンストラクターの委任にはコンストラクターの初期化リストを使用することをお勧めします。提供された。これにより、構築されるオブジェクトの効率的かつ適切な初期化が保証されます。 G 4.7.2 以降のバージョンはこの機能をサポートする必要があります。
以上がコンストラクターの委任を C で効率的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。