首页 > 后端开发 > C++ > 在 C 中委托构造函数的正确方法是什么?

在 C 中委托构造函数的正确方法是什么?

Barbara Streisand
发布: 2024-11-20 15:34:19
原创
214 人浏览过

What's the Correct Way to Delegate Constructors in C  ?

委托构造函数

委托构造函数涉及从构造函数体内调用另一个构造函数以避免冗余代码执行。

正确方法

提供的第二个代码块是 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板