对象的一级别和两阶段构造

您在这两种技术之间的选择创建图形对象,如钢笔和画笔:

  • 一级构造:构建和初始化在一个阶段,整个对象与构造函数。

  • 两阶段构造:构建和初始化对象进入两个不同阶段。构造函数创建对象,并初始化函数初始化它。

两阶段构造总是更安全的。在一级构造,构造函数可能会引发异常,如果您提供了不正确的参数或内存分配失败。该问题按两阶段构造避免,不过,则必须检查失败。在任何情况下,销毁对象的过程相同。

说明说明

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

两个构造技术的示例

下面简要的示例演示构造钢笔对象两个方法:

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

7ffyb1kb.collapse_all(zh-cn,VS.110).gif您想进一步了解什么?

请参见

概念

图形对象