Construção de objetos em um e dois estágios
Você pode optar entre duas técnicas para criar objetos gráficos, como penalidades e escovas:
construção de uma fase: Construir e inicializar o objeto está em fase, todas com o construtor.
Construção de dois estágios: Construir e inicializar o objeto em duas fases separadas. O construtor cria o objeto e uma função de inicialização para inicializá-lo.
A construção de dois estágios sempre é mais segura. Na construção de uma fase, o construtor pode gerar uma exceção se você fornecer argumentos incorretos ou a alocação de memória falha. Esse problema pode ser evitado pela construção de dois estágios, embora você tem que verificar se há falha. Em ambos os casos, destruir o objeto é o mesmo processo.
Dica
Essas técnicas se aplicam a criar todos os objetos, não apenas objetos gráficos.
Exemplo de ambas as técnicas de compilação
O seguinte exemplo mostra breve ambos os métodos de construir um objeto de forma:
// 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
}