首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造函数是否忽略了参数的成员初始化列表中的部分被提供给构造函数?

构造函数是否忽略了参数的成员初始化列表中的部分被提供给构造函数?
EN

Stack Overflow用户
提问于 2014-08-30 23:49:12
回答 1查看 148关注 0票数 1

我试图完全理解构造函数是如何在C++中工作的。具体地说,构造函数的成员初始化列表。

假设您有一个类Foobar,它有三个数据成员bar、baz和qux。

我像这样设置构造函数:

代码语言:javascript
复制
Foobar(int bar, int baz, int qux)
    : bar(bar), baz(baz), qux(qux)
{
  // empty constructor body
}

我的问题是,成员初始化列表是否充当“默认”?还是总是发生这种事?例如,如果使用参数调用构造函数,是否会忽略初始化列表?除非另有规定,否则我希望始终使qux数据成员为0。因此,我是否可以将成员初始化行写为:

代码语言:javascript
复制
  : nar(bar), bar(baz), qux(0)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-30 23:53:38

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25587728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档