Lorsque vous traitez plusieurs constructeurs dans une classe C, il peut y avoir des cas où le même code est répété entre les constructeurs. Pour rationaliser ce processus, C offre la possibilité de déléguer les appels de constructeur.
Dans votre scénario, vous essayez d'appeler le constructeur Bitmap(HBITMAP) à partir du constructeur Bitmap(WORD). Alors que votre première approche crée un bitmap temporaire et appelle l'autre constructeur avec, la syntaxe correcte pour la délégation du constructeur consiste à utiliser la liste d'initialisation du constructeur.
Le code suivant démontre l'approche correcte :
Bitmap::Bitmap(HBITMAP Bmp) { // Construct some bitmap stuff.. } Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
En plaçant l'appel de délégation du constructeur dans la liste d'initialisation, vous vous assurez que le constructeur Bitmap(HBITMAP) est appelé avant toute autre instruction dans le constructeur Bitmap(WORD). Cela permet de réutiliser le code commun tout en initialisant l'objet Bitmap avec différents paramètres.
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!