C 中的构造函数委托
在 C 中,可以将一个构造函数委托给另一个构造函数,从而允许在多个构造函数之间重用初始化代码。这种做法可以简化代码并减少重复。
完成构造函数委托的一种方法是通过构造函数的初始化列表,如您提供的第二个示例所示:
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
在此示例中, Bitmap(WORD ResourceID) 的构造函数委托给 Bitmap(HBITMAP),将加载的图像作为参数传递给委托的构造函数。此语法确保 Bitmap(WORD ResourceID) 构造函数不会创建临时变量或执行不必要的重复初始化。
您在第一个示例中质疑的替代方法确实会创建一个临时 Bitmap 对象,然后使用传递给 Bitmap(WORD ResourceID) 的 HBITMAP 调用该对象的构造函数。虽然这在某些情况下可能有效,但它不是委托构造函数的最有效或正确的方法。
因此,建议使用构造函数的初始化列表进行构造函数委托,如您的第二个代码片段所示假如。这确保了正在构造的对象的有效和正确的初始化。 G 4.7.2及以后版本应该支持此功能。
以上是C语言中如何高效实现构造函数委托?的详细内容。更多信息请关注PHP中文网其他相关文章!