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

时间:2014-12-16 20:55:55

标签: c++ constructor

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

Class object[2] = {Class{2, "text"},Class{5, "otherText"}}
没有' new'它是可能的。我想做的就像

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;
}

1 个答案:

答案 0 :(得分:1)

通常最好使用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中各个对象的某些值数组。