Maison > développement back-end > C++ > Comment puis-je déléguer des constructeurs en C pour éviter la duplication de code ?

Comment puis-je déléguer des constructeurs en C pour éviter la duplication de code ?

DDD
Libérer: 2024-11-22 06:40:14
original
200 Les gens l'ont consulté

How Can I Delegate Constructors in C   to Avoid Code Duplication?

Déléguer des constructeurs en C

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))
{
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal