ペンやブラシなど、グラフィック オブジェクトを作成する 2 つの手法から選択できます。
1 段階の構築: コンストラクターを使用して、1 つのステージでオブジェクトを構築して初期化します。
2 段階の構築: 2 つの異なるステージでオブジェクトを構築し、初期化します。 コンストラクターによってオブジェクトが作成され、初期化関数によって初期化されます。
2段構造は常に安全です。 1 段階の構築では、正しくない引数を指定した場合、またはメモリ割り当てが失敗した場合、コンストラクターは例外をスローする可能性があります。 この問題は 2 段階の構築によって回避されますが、失敗を確認する必要があります。 いずれの場合も、オブジェクトの破棄は同じプロセスです。
注
これらの手法は、グラフィック オブジェクトだけでなく、任意のオブジェクトを作成する場合にも適用されます。
両方の構築手法の例
次の簡単な例は、ペン オブジェクトを構築する両方の方法を示しています。
// One-stage
CPen myPen1(PS_DOT, 5, RGB(0, 0, 0));
// Two-stage: first construct the pen
CPen myPen2;
// Then initialize it
if (myPen2.CreatePen(PS_DOT, 5, RGB(0, 0, 0)))
{
// Use the pen
}