对象的 One-Stage 和 Two-Stage 构造

可以选择创建图形对象(如笔和画笔)的两种技术:

  • 一阶段构造:使用构造函数在一个阶段构造和初始化对象。

  • 两阶段构造:在两个单独的阶段构造和初始化对象。 构造函数创建对象,初始化函数初始化该对象。

两阶段建筑总是更安全的。 在单阶段构造中,如果提供不正确的参数或内存分配失败,构造函数可能会引发异常。 两阶段构建避免了此问题,不过你需要检查是否失败。 在任一情况下,销毁对象的过程都是相同的。

注释

这些技术适用于创建任何对象,而不仅仅是图形对象。

这两种构造技术的示例

以下简短示例演示了两种构造触控笔对象的方法:

// 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
}

你想进一步了解什么

另请参阅

图形对象