私はクラスの階層を持っています。基本クラスは、ファイルからロード可能なチューニングパラメータを使用します(実行時に再ロード可能)。それぞれの派生クラスはいくつかの追加パラメータを追加することができます。私は、ベースのコンストラクタで正しくサイズのパラメータ配列を割り当てる方法を探しているので、派生クラスで割り当てを解除して再割り当てする必要はありません。 (パラメータは常に2つの要素を持っている)私はこのような何かを期待していたが、それは働いていない:派生クラスに基づくサイズのベースコンストラクタで配列を割り当てる方法は?
class Base
{ static int nParms;
virtual int getNParms() { return nParms;}
float *parameters;
public:
Base()
{ parameters= new float[this->getNParms()];
parameters[0] = globalReloadableX;
parameters[1] = globalReloadableY;
}
};
int Base::nParams =2;
class Derived : public Base
{ static int nParms;
virtual int getNParms() { return nParms;}
public:
Derived() : Base()
{ parameters[2] = globalReloadableZ;
}
}
int Derived::nParams =3;
私はthis questionを見てきましたが、そこに解決策はかなり私のために動作しません。 Iはまた、パラメータを各クラスの規則的なアレイ作製を試みた:
class Base
{ float parameters[2]
...
class Derived : public Base
{ float parameters[3]
...
をそれが由来は2つの別々の配列を有することができます。
アイデア?
なぜそうではありませんか?あまりにも明らかだ!時には私はちょうど詳細で包まれすぎてしまいます...理由の説明をありがとう。 – AShelly
問題はありません、皆に起こります! –