gpt4 book ai didi

c++ - 构造函数是否忽略了提供给构造函数的参数的成员初始化列表的一部分?

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:53 25 4
gpt4 key购买 nike

我试图完全理解构造函数在 C++ 中的工作原理。具体来说,一个构造函数的成员初始化列表。

假设您有一个包含三个数据成员 bar、baz 和 qux 的 Foobar 类。

我这样设置我的构造函数:

Foobar(int bar, int baz, int qux)
: bar(bar), baz(baz), qux(qux)
{
// empty constructor body
}

我的问题是,成员初始化列表是否充当“默认值”?还是它总是发生?例如,如果使用参数调用构造函数,是否会忽略初始化列表?我希望 qux 数据成员始终为 0,除非另有说明。所以我会把成员初始化行写成:

  : nar(bar), bar(baz), qux(0)

也许我完全误解了成员初始化列表的功能,也许有人可以纠正我。

最佳答案

该构造函数不能在没有参数的情况下调用,因为所有三个参数都是必需的。如果你忘记了,编译器会提醒你。

如果您总是想将一个成员初始化为一个固定值,那么这样做的方法正是您所建议的。

关于c++ - 构造函数是否忽略了提供给构造函数的参数的成员初始化列表的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25587728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com