Одноэтапное и двухэтапное сборка объектов
У вас есть выбор между двумя способами создания графических объектов, таких как ручки и кисти:
Одноэтапная конструкция: создание и инициализация объекта на одном этапе, все с конструктором.
Двухэтапная конструкция: создание и инициализация объекта на двух отдельных этапах. Конструктор создает объект, а функция инициализации инициализирует ее.
Двухэтапное строительство всегда безопаснее. В одноэтапной конструкции конструктор может вызвать исключение, если некорректные аргументы или выделение памяти завершается ошибкой. Эта проблема избегается двухэтапной конструкции, хотя вам придется проверка для сбоя. В любом случае уничтожение объекта является тем же процессом.
Примечание.
Эти методы применяются к созданию объектов, а не только графических объектов.
Пример обоих методов строительства
В следующем кратком примере показаны оба метода создания объекта пера:
// 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
}