C++允许实例化一个类,经由初始化列表设置公共成员的值,如下面示出了例如用于b1
:C++:如何通过初始化列表完成构造?
class B {
public:
int i;
std::string str;
};
B b1{ 42,"foo" };
B b2();
;然而,如果我提供的构造函数
B(int k) { }
,它不会编译。
那么,引擎盖后面发生了什么? 当没有构造函数提供时,编译器会提供一个吗?但是它怎么能提供一个初始化列表?我认为它只会提供一个没有输入的“空白”构造函数,如b2
所示。还是它提供了两个?