Construction en une étape et à deux couches d'objets
Vous avez le choix entre deux techniques permettant de créer des objets graphiques, tels que les stylets et les pinceaux :
Construction d'une étape: Construire et initialisez l'objet dans une étape, toutes avec le constructeur.
Construction à deux niveaux: Construire et initialisez l'objet à deux étapes séparées. Le constructeur crée l'objet et une fonction d'initialisation l'initialise.
La construction à deux niveaux est toujours plus sécurisée. Dans la construction d'une étape, le constructeur peut lever une exception si vous fournissez les arguments incorrects ou l'allocation de mémoire échoue. Ce problème est évité par la construction à deux niveaux, même si vous devez vérifier l'échec. Dans l'un et l'autre cas, la destruction de l'objet est identique.
Notes
Ces techniques s'appliquent à créer tous les objets, et pas simplement objets graphiques.
Exemple de deux techniques de construction
Un bref exemple suivant illustre les deux méthodes de construction d'un objet de stylet :
// 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
}