对象的一级别和两阶段构造
您在这两种技术之间的选择创建图形对象,如钢笔和画笔:
一级构造:构建和初始化在一个阶段,整个对象与构造函数。
两阶段构造:构建和初始化对象进入两个不同阶段。构造函数创建对象,并初始化函数初始化它。
两阶段构造总是更安全的。在一级构造,构造函数可能会引发异常,如果您提供了不正确的参数或内存分配失败。该问题按两阶段构造避免,不过,则必须检查失败。在任何情况下,销毁对象的过程相同。
说明 |
---|
这些技术应用于创建任何对象,而不只是图形对象。 |
两个构造技术的示例
下面简要的示例演示构造钢笔对象两个方法:
// 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
}