首页 > 后端开发 > C++ > C 构造函数委托:为什么要在成员初始化列表中初始化?

C 构造函数委托:为什么要在成员初始化列表中初始化?

Susan Sarandon
发布: 2024-11-25 11:05:17
原创
640 人浏览过

C   Constructor Delegation:  Why Initialize in the Member Initializer List?

委托构造函数:深入探究

C 中的构造函数委托是一种允许构造函数调用同一类的另一个构造函数的技术。当多个构造函数执行类似操作时,它对于减少代码重复很有用。

在提供的示例中,目标是使用不同的参数类型(例如 HBITMAP 或 WORD ResourceID)委托 Bitmap 对象的构造。问题中提出的第二种方法正确地演示了初始化列表中的构造函数委托:

Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(...)
登录后复制

此语法使用 HBITMAP 构造函数初始化 Bitmap 对象,并将加载的资源作为参数传递。这优于第一种方法,第一种方法将创建一个临时 HBITMAP 对象,然后尝试委托给 HBITMAP 构造函数。

构造函数委托只能在构造函数的初始化列表中完成。如果您尝试从构造函数主体进行委托(如第一种方法所示),则会导致错误或意外行为。

以上是C 构造函数委托:为什么要在成员初始化列表中初始化?的详细内容。更多信息请关注PHP中文网其他相关文章!

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