c++中有列表初始化的操作,类似这样:
std::vector<int> a{v1,v2}; //写法1
同时vector也可以这样写:
std::vector<int> b(10,init); //写法2
在网上查阅资料,列表初始化(写法1)用于聚合类,聚合类不能有构造函数。
而写法2应该是调用了vector类的构造函数,那么意味着vector应改该不能使用列表初始化,这是不是矛盾了呢?
c++中有列表初始化的操作,类似这样:
std::vector<int> a{v1,v2}; //写法1
同时vector也可以这样写:
std::vector<int> b(10,init); //写法2
在网上查阅资料,列表初始化(写法1)用于聚合类,聚合类不能有构造函数。
而写法2应该是调用了vector类的构造函数,那么意味着vector应改该不能使用列表初始化,这是不是矛盾了呢?
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
列表初始化不只可以用于聚合类,也可以用于调用构造函数。
dcl.init.list