我正在尝试创建一个特定大小为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
感谢您的帮助!
答案 0 :(得分:3)
这不是类声明的有效语法。尝试:
class test
{
vector <string> Name;
test() : Name(MAX) {}
};
您可以在创建变量时编写vector <string> Name(MAX);
(在您的情况下,您要声明成员)。例如:
int main()
{
vector <string> Name(MAX);
}
完全有效。
答案 1 :(得分:0)
您不能像这样在类声明中初始化数据成员。使用类的构造函数中的成员初始化列表初始化vector<string> Name
。
test::test
:Name(MAX)
{
//
}
你的主要就是这样。
test t1 ;
它会自动调用构造函数,并且会创建t1
的所有字段,包括vector<string> Name
。
答案 2 :(得分:0)
您不能在类声明中将参数传递给std::vector
构造函数。你应该把它放在你的类的构造函数中,就像这样,它通过初始化列表使用它:
class test
{
std::vector<std::string> Name;
public:
test():
Name(MAX)
{
}
};