0

我正在尝试创建一个特定大小的矢量,为 255(最大)。它对我不起作用,就像我在互联网上的示例中看到的那样......

我正在使用 Microsoft Visual C++ 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类声明中的构造函数。你应该把它放在你的类的构造函数中,就像这样,它通过一个初始化列表来利用它:

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

    public:

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