此问题在此处已有答案:
How to initialize a vector to a certain length in a class?(2个答案)
Why class data members can't be initialized by direct initialization syntax?(1个答案)
3天前关闭。
我试图初始化一个向量的首选大小,但Visual Studio给出了一个错误C2059。
class Solution {
private:
vector<int> firsttosee(26);
};
字符串
我读过this article,但在答案中作者提到:
类定义中的成员语法不允许初始化器的()括号样式(我不确定为什么)。
请帮助理解,为什么明显的向量初始化在类中不起作用
1条答案
按热度按时间0pizxfdo1#
错误C2059是一个语法错误。
正如linked answer明确指出的那样,标准C++语法不允许使用
()
直接从类声明内部初始化类成员,因此您的错误。但是,您可以使用
()
初始化constructor's member initializer list中的成员,例如:字符串
或者,从C++11开始,你可以在类成员声明1中使用
{}
,例如:型
一曰:这对于
std::vector
来说实际上有点问题,因为它实际上会调用std::initializer_list
构造函数,而不是size_t
构造函数,从而使vector
包含1个值为26的元素,而不是包含26个值为0的元素。否则,您可以使用
()
创建一个单独的对象,然后使用它初始化类成员,例如:型