Maison >développement back-end >C++ >Quelle est la bonne façon de déléguer des constructeurs en C ?
Déléguer des constructeurs
Déléguer un constructeur implique d'appeler un autre constructeur depuis le corps du constructeur pour éviter l'exécution de code redondante.
Approche correcte
Le deuxième bloc de code présenté est l'implémentation correcte pour délégation du constructeur en C . Il utilise la liste d'initialisation du constructeur :
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
Liste d'initialisation
La liste d'initialisation permet d'initialiser directement un objet lors de la construction. En passant la valeur HBITMAP au constructeur Bitmap(HBITMAP) dans la liste d'initialisation, vous déléguez la construction à l'autre constructeur.
Approche incorrecte
Le premier bloc de code tente de déléguer en utilisant :
Bitmap(BMP);
Cependant, cela crée un objet Bitmap temporaire et ne délègue pas à l'existant constructeur.
Portée de la délégation
Notez que la délégation du constructeur ne peut se produire que dans la liste d'initialisation du constructeur et non dans le corps du constructeur. Son utilisation dans le corps conduirait à une construction récursive, ce qui n'est pas autorisé en C .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!