0

基本的に、あるクラスから別のクラスに渡されるサイズのオブジェクトの配列を作成したい

Object * ArrayOfObjects = new Object[Size];

それは配列を正常に作成しますが、コンストラクターを使用することはできません。

オブジェクトの配列を作成し、配列内の各オブジェクトを定義するにはどうすればよいですか?

4

3 に答える 3

3

配列にメモリを割り当てたら、ループして割り当てることができます。

for (int i = 0; i < Size; ++i)
{
    ArrayOfObjects[i] = Object( /* call the constructor */ );
}

または、ベクターを使用して同じことを行うことができますが、より使いやすくなっています。

std::vector<Object> ArrayOfObjects = { Object(...), Object(...) };
于 2013-06-02T02:49:12.983 に答える
0

あなたがしたように、メモリを割り当てたら。オブジェクトの配列をトラバースして各オブジェクトを初期化し、そのコンストラクターを呼び出します。

#include<iostream>
using namespace std;
class Obj
{
    public:
    Obj(){}
    Obj(int i) : val(i)
    {
        cout<<"Initialized"<<endl;
    }
    int val;
};
int allot(int size)
{

    Obj *x= new Obj[size];
    for(int i=0;i<10;i++)
        x[i]=Obj(i);

     //process as you need
     ...
}
于 2013-06-02T02:50:06.680 に答える