【问题标题】:How to set an empty object vector in c++?如何在 C++ 中设置一个空的对象向量?
【发布时间】:2012-02-28 20:56:06
【问题描述】:

我想为我的对象 A 创建一个默认构造函数。我的问题是 A 对象的变量之一是向量数组 B 对象。

基本上给我带来麻烦的行目前看起来像这样:

A(): name(""), bArray({B()}), n(0) {}

一定是语法问题。

完整的构造函数如下所示:

A(string n,  vector<B> in, int k): name(n), bArray(in), n(k) {}

【问题讨论】:

  • 不要在初始化列表中添加 bArray。如果你把它作为一个类变量,那么它已经是空的了。
  • bArray() 不适合你?

标签: c++ arrays vector constructor


【解决方案1】:

您不需要在初始化列表中初始化vector。成员类已经使用默认构造函数构建,在您的情况下,它将初始化您的向量为空。

【讨论】:

  • 糟糕的建议,恕我直言。初始化器列表应与成员变量声明相呼应以避​​免混淆。 Scott Meyers 在 EffC++ 中也这么说。
【解决方案2】:

由于 n 和 in 将有自己的默认构造函数,您不需要显式初始化它们。只需将 k 初始化为 0,省略其他两个就可以了。

【讨论】:

    猜你喜欢
    • 2021-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    相关资源
    最近更新 更多