1

配列のサイズの設定に問題があります。私のコードには次のものがあります。

class Test {
    public:
       ....//Functions
    private:
      string name[];
};

Test() {
   //heres where i want to declare the size of the array
}

これは可能ですか?

4

2 に答える 2

6

いいえ。ただし、代わりに文字列のベクトルを使用できます。

private:
  std::vector<std::string> name;

次に、コンストラクターで次のようにします。

Test()
    : name(sizeOfTheArray)
{
}

ベクトルは、指定した文字列の数に合わせてサイズ調整されます。これは、文字列のすべてのメモリが一度に割り当てられることを意味します。配列のサイズは自由に変更できますが、変更しなければならないということはありません。したがって、動的に割り当てられた配列を使用することのすべての利点が得られ、さらにいくつかの利点が欠点なしで得られます。

于 2010-02-19T04:12:46.250 に答える
2

を使用して、配列にメモリを動的に割り当てる必要がありますnew

次のように変数を宣言します。

private:
    string* name;

そして、コンストラクターでこれを行います:

int size = ...
name = new string[size];

そして、次のようにデストラクタでメモリを解放します。

delete [] name;
于 2010-02-19T04:12:10.703 に答える