C++中类成员变量的初始化问题
C++11之后允许对非静态成员变量进行初始化(in-class initialization),不过对于 非fundamental(非基本数据) 类型需要采用的是initializer_list来实现的 所以如下代码是错误的: class A{ public: int x=1; string s="qweqetfqw"; vector<int>p(1,0);//这句错了,vector不是基本数据类型,必须用大括号初始化 }; 改成下面这样就正确了: class A{ public: int x=1; string s="qweqetfqw"; vector<int> p{0};//用大括号直接初始化 }; 或者: class A{ public: int x=1; string s="qweqetfqw"; vector<int> p={0};//用复制拷贝函数初始化 }; 来源: https://www.cnblogs.com/FdWzy/p/12322161.html