【问题标题】:Allocating an array of C++ objects [duplicate]分配 C++ 对象数组 [重复]
【发布时间】:2014-11-08 15:16:48
【问题描述】:

我想使用以下代码分配一个 C++ 对象数组:

class myClass {
public:
    myClass(int userValue)
    : value(userValue)
    { }
}

private:
    int value;
};

int main(){
    myClass* objArray = new myClass(22)[5];

    return 0;
}

但它给了我以下错误:

In constructor ‘myClass::myClass(int32)’:
error: expected ‘;’ before ‘[’ token
         objArray = new objArray(22)[5];

我应该如何创建一个对象数组,同时将参数传递给它们?

【问题讨论】:

  • -1 不是真正的代码。在您在这里手动编写的代码中,在类定义的} 之后缺少一个分号。请始终复制并粘贴真实代码。
  • 0 删除了反对票,修复了代码示例。

标签: c++ arrays object constructor allocation


【解决方案1】:

使用std::vector

std::vector<myClass> objArray(5, 22);

【讨论】:

  • +1std::vector
  • 谢谢。但是你能告诉我为什么不能以常规方式分配对象数组的原因吗?
猜你喜欢
  • 1970-01-01
  • 2016-02-03
  • 2016-10-22
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
相关资源
最近更新 更多