C++ C++;向量作为类成员vs在函数中
当我在一个函数中使用向量时,我得到一个变量D,它就工作了C++ C++;向量作为类成员vs在函数中,c++,templates,syntax,C++,Templates,Syntax,当我在一个函数中使用向量时,我得到一个变量D,它就工作了 vector<int> D(100); 向量D(100); 但是,当我决定将其用作类成员时,我会遇到以下奇怪的错误: error: expected identifier before numeric constant 99 | vector<int> D(100); | ^~~ 错误:数字常量前应包含标识符 99 |矢量D(100); |
vector<int> D(100);
向量D(100);
但是,当我决定将其用作类成员时,我会遇到以下奇怪的错误:
error: expected identifier before numeric constant
99 | vector<int> D(100);
| ^~~
错误:数字常量前应包含标识符
99 |矢量D(100);
| ^~~
有人能解释一下为什么会出现这种错误吗?
我可以将类中的数组用作
intd[100]
默认成员初始值设定项(自C++11以来),因为它只支持等号初始值设定项(和大括号初始值设定项,与此用例不匹配)
通过默认成员初始值设定项,该初始值设定项是成员声明中包含的大括号或等于初始值设定项,如果从构造函数的成员初始值设定项列表中省略该成员,则使用该初始值设定项
你可以
vector<int> D = vector<int>(100);
vector D=vector(100);
或者使用成员初始化器列表。e、 g
struct x {
vector<int> D;
x() : D(100) {}
};
struct x{
载体D;
x():D(100){}
};
我正在使用成员初始值设定项列表。我想知道为什么会有这样的错误。谢谢@它引起歧义;事实上,如果使用括号,大多数编译器都试图将其解释为函数声明。