0

オブジェクト配列を作成しようとしていますが、配列サイズを手動で入力すると問題なく動作しますが、関数の引数から情報を取得しようとするたびに、「予期される定数式」および「配列を割り当てることができません」というエラーが表示されます定数サイズ 0".

私は周りを検索して複数の解決策を見つけましたが、どれもうまくいきません。コードは現在次のようになっています。

Array::Array(int in, int min, int max) 
{
    size = in;
    Heltal *htal[size];
}

サイズの整数と htal オブジェクトは、ヘッダー ファイルで定義されます。

問題を引き起こしていると思われる行は最後の行です。何が原因で、どうすれば修正できますか?

4

2 に答える 2

6

VLA (可変長配列) は C++ ではサポートされていません。だったとしても、意味avectorありHeltal *htal[a];ません。

これを修正するstd::vectorには、(有効なサイズの) 配列の代わりに を使用します。

std::vector<Heltal*> htal(a.size() /*or whatever size you want*/);
于 2013-01-10T14:47:29.963 に答える
1

配列のサイズはコンパイル時の定数でsizeなければならず、定数ではありません。代わりに、配列を動的に割り当てる必要があります。

std::vector<Heltal *> htal(size);
于 2013-01-10T14:53:42.647 に答える