C++在一个类里调用另一个类的构造函数出错

structx{x()=default;x(inta,intb):c(a),d(b){}intc=0;intd=0;};structy{std::vector<struc... struct x{
x() = default;
x(int a, int b) :c(a), d(b) { }
int c = 0;
int d = 0;
};

struct y{
std::vector<struct x> xs{ x(3, 3) };//提示这里出错
};
错误 1 error C2664: “std::vector<x,std::allocator<_Ty>>::vector(std::initializer_list<x>,const std::allocator<_Ty> &)”: 无法将参数 1 从“x”转换为“const std::allocator<_Ty> &”

1> with
1> [
1> _Ty=x
1> ]
1> 原因如下: 无法从“x”转换为“const std::allocator<_Ty>”
1> with
1> [
1> _Ty=x
1> ]
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符

为VS2013 C++Primer 第5版 251页上 Windows_mgr类定义时
vector<class screen>screens{ screen(24, 80, " ") };
不知道是否可以这样用 为什么会出错
展开
 我来答
viichi
2014-07-25 · TA获得超过355个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:210万
展开全部
你的代码,使用了c++11的新特性,确保你使用的编译器支持c++11标准。

我在mac os x下,使用 clang,是可以编译通过的。

注:微软的编译器,在Vistual Studio 2013 之前的C++编译器,都是不支持或不完全支持c++11标准的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式