Одноэтапное и двухэтапное сборка объектовOne-Stage and Two-Stage Construction of Objects

Вы можете выбрать один из двух способов создания графических объектов, таких как перья и кисти:You have a choice between two techniques for creating graphic objects, such as pens and brushes:

  • Одноэтапная конструкция: создание и инициализация объекта на одном этапе с помощью конструктора.One-stage construction: Construct and initialize the object in one stage, all with the constructor.

  • Конструкция с двумя этапами: создание и инициализация объекта на двух отдельных этапах.Two-stage construction: Construct and initialize the object in two separate stages. Конструктор создает объект, и инициализирует его функцию инициализации.The constructor creates the object and an initialization function initializes it.

2-этапное построение всегда является более безопасным.Two-stage construction is always safer. В одноэтапном построении конструктор может вызвать исключение, если вы предпредоставите неверные аргументы или не удастся выделить память.In one-stage construction, the constructor could throw an exception if you provide incorrect arguments or memory allocation fails. Эта проблема не устранена конструкцией с двумя этапами, хотя необходимо проверить наличие сбоев.That problem is avoided by two-stage construction, although you do have to check for failure. В любом случае уничтожение объекта будет таким же процессом.In either case, destroying the object is the same process.

Примечание

Эти методы применяются для создания любых объектов, а не только для графических объектов.These techniques apply to creating any objects, not just graphic objects.

Пример обоих методов созданияExample of Both Construction Techniques

В следующем кратком примере показаны оба метода создания объекта Pen:The following brief example shows both methods of constructing a pen object:

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

Что вы хотите узнать подробнееWhat do you want to know more about

См. также разделSee also

Графические объектыGraphic Objects