如何在分配对象数组时初始化每个对象

时间:2014-02-20 16:16:06

标签: c++ arrays object initialization

在C ++中,我有一个类CMyObject,如下所示,其中CData是另一个类名:

Class CMyObject
{
CMyObject(CData& Data): m_Data(Data) {};
virtual ~CMyObject(void);

private:
  const CData& m_Data;
}

分配一个CMyObject实例时,我可以这样做:

P = new CMyObject(MyData);

但是,如果我想创建一个CMyObject数组,那么我可以这样做吗?

P = new CMyObject(MyData)[10];

1 个答案:

答案 0 :(得分:1)

你可以使用初始化列表(我用4来保存一些打字,但你明白了):

CMyObject* P = new CMyObject[4]{MyData, MyData, MyData, MyData};

但更好的是,使用std::vector

std::vector<CMyObject> P(10, MyData);