c++ 必须带有初始化列表的构造函数【图文】_十五点十

c++ 必须带有初始化列表的构造函数【图文】_十五点十

如图所示,类A即为带有初始化列表(红框内)的构造函数。但是,这个类没有默认构造函数

1 成员, 无默认构造函数​

​当类B含有成员aA类型时,在类B的所有构造函数中,必须使用初始化列表a初始化。在构造函数体内赋值是不行的。

c++ 必须带有初始化列表的构造函数【图文】_十五点十

如图,在B的前两个构造方法中,没有使用初始化列表对a进行初始化,有错误提示。

有一个例外如下图,如果在成员定义处进行成员初始化,则无需在构造方法上使用初始化列表了。

c++ 必须带有初始化列表的构造函数【图文】_十五点十

总之,在构造方法体执行之前要初始化所有成员,内置类型如int会进行默认初始化为一个不确定值。

而如果类成员没有默认构造方法,则不能执行默认初始化,则需要显示的在成员定义处,或构造函数初始化列表处显示初始化。

2 基类,无默认构造函数

当类B继承类A时,在B中也需要使用构造函数初始化列表对A进行初始化,如下图红框。

c++ 必须带有初始化列表的构造函数【图文】_十五点十

本站由小牛团队全力维护,小牛十年了,大家已经步入中年 。本站源码全部经过团队成员测试并调试,价格可能比其它网站略贵几元钱,不解释!
小牛资源 » c++ 必须带有初始化列表的构造函数【图文】_十五点十

发表评论

全站资源亲测可用,价格略高几元,不解释

立即查看 了解详情