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