委托构造函数
委托构造函数涉及从构造函数体内调用另一个构造函数以避免冗余代码执行。
正确方法
提供的第二个代码块是 C 中构造函数委托的正确实现。它使用构造函数的初始化列表:
Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED)) { }
初始化列表
初始化列表允许您在构造时直接初始化对象。通过将 HBITMAP 值传递给初始化列表中的 Bitmap(HBITMAP) 构造函数,您可以将构造委托给其他构造函数。
不正确的方法
第一个代码块尝试使用以下方式进行委托:
Bitmap(BMP);
但是,这会创建一个临时 Bitmap 对象,并且不会委托给现有的构造函数。
委托范围
请注意,构造函数委托只能发生在构造函数的初始化列表中,而不能发生在构造函数主体中。在体内使用它会导致递归构造,这在 C 中是不允许的。
以上是在 C 中委托构造函数的正确方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!