基本的に、あるクラスから別のクラスに渡されるサイズのオブジェクトの配列を作成したい
Object * ArrayOfObjects = new Object[Size];
それは配列を正常に作成しますが、コンストラクターを使用することはできません。
オブジェクトの配列を作成し、配列内の各オブジェクトを定義するにはどうすればよいですか?
基本的に、あるクラスから別のクラスに渡されるサイズのオブジェクトの配列を作成したい
Object * ArrayOfObjects = new Object[Size];
それは配列を正常に作成しますが、コンストラクターを使用することはできません。
オブジェクトの配列を作成し、配列内の各オブジェクトを定義するにはどうすればよいですか?
配列にメモリを割り当てたら、ループして割り当てることができます。
for (int i = 0; i < Size; ++i)
{
ArrayOfObjects[i] = Object( /* call the constructor */ );
}
または、ベクターを使用して同じことを行うことができますが、より使いやすくなっています。
std::vector<Object> ArrayOfObjects = { Object(...), Object(...) };
あなたがしたように、メモリを割り当てたら。オブジェクトの配列をトラバースして各オブジェクトを初期化し、そのコンストラクターを呼び出します。
#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
...
}