Construcción de objetos en una fase y en dos fases
Puede elegir entre dos técnicas para crear objetos gráficos, como lápices y pinceles:
Construcción de una fase: construya e inicialice el objeto en una fase, todo ello con el constructor.
Construcción en dos fases: construya e inicialice el objeto en dos fases independientes. El constructor crea el objeto y una función de inicialización la inicializa.
La construcción en dos fases siempre es más segura. En la construcción de una fase, el constructor podría producir una excepción si se proporcionan argumentos incorrectos o se produce un error en la asignación de memoria. Ese problema se evita mediante la construcción en dos fases, aunque tiene que comprobar si hay errores. En cualquier caso, destruir el objeto es el mismo proceso.
Nota:
Estas técnicas se aplican a la creación de objetos, no solo objetos gráficos.
Ejemplo de ambas técnicas de construcción
En el siguiente breve ejemplo se muestran ambos métodos para construir un objeto de lápiz:
// 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
}