Délégation de constructeur en C
En C , il est possible de déléguer un constructeur à un autre, permettant la réutilisation du code d'initialisation sur plusieurs constructeurs . Cette pratique peut simplifier le code et réduire les répétitions.
Une méthode pour réaliser la délégation du constructeur consiste à utiliser la liste d'initialisation du constructeur, comme le montre le deuxième exemple que vous avez fourni :
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
Dans cet exemple, le constructeur de Bitmap (WORD ResourceID) délègue à Bitmap (HBITMAP), en passant l'image chargée comme argument au constructeur délégué. Cette syntaxe garantit que le constructeur Bitmap(WORD ResourceID) ne crée pas de variable temporaire ou n'effectue pas d'initialisation en double inutile.
L'approche alternative, que vous avez remise en question dans votre premier exemple, créerait en effet un objet Bitmap temporaire, puis appelez le constructeur de cet objet avec le HBITMAP passé à Bitmap (WORD ResourceID). Bien que cela puisse fonctionner dans certains cas, ce n'est pas le moyen le plus efficace ou le plus correct de déléguer des constructeurs.
Par conséquent, il est recommandé d'utiliser la liste d'initialisation du constructeur pour la délégation du constructeur, comme illustré dans le deuxième extrait de code que vous fourni. Cela garantit une initialisation efficace et appropriée de l’objet en cours de construction. G 4.7.2 et les versions ultérieures devraient prendre en charge cette fonctionnalité.
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!