0

特定のサイズ、255(最大)のベクトルを作成しようとしています。インターネット上の例で見られるように、それは私には機能しません...

私はMicrosoftVisualC++2012を使用しています...

私は現在のコードを持っています:

#include <iostream>
#include <string>
#include <vector>
#include <stdlib.h>

using namespace std;

const int MAX = 255;

class test
{
vector <string> Name(MAX);
};

int main()
{
system("PAUSE");
}

それは私に2つのエラーを与えます:

Error 1 error C2061: syntax error : identifier 'MAX'

2 IntelliSense: variable "MAX" is not a type name

ご協力いただきありがとうございます!

4

3 に答える 3

3

これは、クラス宣言の有効な構文ではありません。試す:

class test
{
   vector <string> Name;
   test() : Name(MAX) {}
};

変数を作成するときに書き込むことができvector <string> Name(MAX);ます(この場合、メンバーを宣言しています)。例えば:

int main()
{
   vector <string> Name(MAX);
}

完全に有効です。

于 2012-12-10T12:47:50.003 に答える
0

このようにクラス宣言内でデータメンバーを初期化することはできません。クラスのコンストラクターでメンバー初期化リストを使用して、を初期化しますvector<string> Name

test::test
:Name(MAX)
{
  //
}

あなたのメインはこのようになります。

test t1 ;

コンストラクターが自動的に呼び出され、を含むのすべてのフィールドt1が作成されvector<string> Nameます。

于 2012-12-10T12:48:33.287 に答える
0

std::vectorクラス宣言のコンストラクターintに引数を渡すことはできません。これをクラスのコンストラクターに入れる必要があります。たとえば、イニシャライザーリストを介してこれを利用します。

class test
{
    std::vector<std::string> Name;

    public:

    test():
        Name(MAX)
    {
    }
};
于 2012-12-10T12:48:49.747 に答える