n-Particles で構成されるシステムがあります。Particle オブジェクトは、複数のパラメーター (double など) を引数として受け取るコンストラクターを使用して初期化できます。
Particle p(para1, para2 ... , paraN);
n-Particles の配列を必要とするシステムができました。オブジェクトの数と Particle パラメータを受け取り、n-Particle 配列を作成するコンストラクタを構築したいと考えています。
私は次のことを試しました:
class System {
public:
Particle p[]; //declare dynamic array
System() {}
//Constructor
System(int n, para1, para2 ... , paraN)
{
Particle p[n]; //Particle array of size n
for(int i=0; i<n; i++)
{
Particle temp(para1, para2 ... , paraN);
p[i] = temp;
}
}
};
プログラムはコンパイルされず、次のエラーが発生します。
error: no match for ‘operator=’ in ‘p[i] = tempp’
note: candidate is:
note: Particle& Particle::operator=(const Particle&)
note: no known conversion for argument 1 from ‘Particle(double, double, double, double)’ to ‘const Particle&’
私は一般的にC++とOOPに不慣れです。これを克服する方法についての助けをいただければ幸いです。