通过数组和"new"运算符创建的对象,但如何传递参数?

Objects created via array and 'new'-operator, but how to pass parameters?

本文关键字:何传递 参数 对象 创建 数组 new 运算符      更新时间:2023-10-16

很好,你正在看看我的问题,我很难将参数传递给由"new"创建并存储为数组的对象。我知道

Class object[2] = {Class{2, "text"},Class{5, "otherText"}}

没有"新"是可能的。我想做的是像

pClass = new Class[2]{Class{2,"text"},Class{5,"otherText"}}

下面的一些代码:

class AnotherClass{
  int val1;
  string str1;
public:
  //some code
};

class Class{
  AnotherClass *pToAnotherClass;
  //some more variables
public:
  Class(){ pToAnotherClass = new AnotherClass[5]};
  //some more code
};  

main{
Class object;
return 0;
}

通常最好使用 std::vector 而不是 C 样式数组来保存对象。这允许使用 emplace_back 初始化;例如,然后你可以做

  Class()
    : v()
  {
      v.reserve(5);
      for (size_t i = 0; i < 5; ++i)
      {
           v.emplace_back(val[i], str[i]);
      }
  }
  std::vector<AnotherClass> v;

其中valstr是初始化v中各个对象所需的一些值数组。