我试图完全理解构造函数是如何在C++中工作的。具体地说,构造函数的成员初始化列表。
假设您有一个类Foobar,它有三个数据成员bar、baz和qux。
我像这样设置构造函数:
Foobar(int bar, int baz, int qux)
: bar(bar), baz(baz), qux(qux)
{
// empty constructor body
}我的问题是,成员初始化列表是否充当“默认”?还是总是发生这种事?例如,如果使用参数调用构造函数,是否会忽略初始化列表?除非另有规定,否则我希望始终使qux数据成员为0。因此,我是否可以将成员初始化行写为:
: nar(bar), bar(baz), qux(0)也许我完全误解了成员初始化列表的功能,也许有人可以纠正我的错误。
发布于 2014-08-30 23:53:38
不能在没有参数的情况下调用该构造函数,因为这三个构造函数都是必需的。如果您忘记了,编译器会提醒您。
如果您总是希望将一个成员初始化为一个固定的值,那么您建议的方法就是这样做的。
https://stackoverflow.com/questions/25587728
复制相似问题