C++は、以下の例では、b1
ために示したように、初期化リストを介して公衆のメンバーの値を設定し、クラスをインスタンス化することができ:C++:初期化リストによる構築はどのように行われますか?
class B {
public:
int i;
std::string str;
};
B b1{ 42,"foo" };
B b2();
。しかし、私がコンストラクタを提供する場合、
B(int k) { }
はコンパイルされません。
だから、フードの後ろには何が起こっているのですか? コンストラクタが提供されていない場合、コンパイラはそれを提供しますか?しかし、どのように初期化リストを提供することができますか?私はそれが入力を取らない "空の"コンストラクタを提供すると思っていました。例ではb2
のように表示されています。それとも両方を提供していますか?