對于 initiailzer_list,Cpp 為什么只提供默認構造函數:cppreference; 那我來初始化一下 vector:vector<int> vec(initializer_list<int>()); // "expression must have class type" warning when using vec為啥又不行呢? 為什么改成 {} 就可以了呢?vector<int> vec(initializer_list<int>{}); // OK{} 是脫離于構造函數之外的嘛? 那為什么用 {} 初始化有時候也必會調用對應的構造函數呢?struct A{
A(int a, int b){this->a = 2*a; this->b = 2*b;} int a; int b;
};
A a{1, 2}; // (2, 4)brace(list) initialization 的設計到底是為了什么?
- 1 回答
- 0 關注
- 574 瀏覽
添加回答
舉報
0/150
提交
取消