-2

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に不慣れです。これを克服する方法についての助けをいただければ幸いです。

4

1 に答える 1