なぜこのコードは:
class A
{
public:
explicit A(int x) {}
};
class B: public A
{
};
int main(void)
{
B *b = new B(5);
delete b;
}
次のエラーが発生します。
main.cpp: 関数 'int main()' 内: main.cpp:13: エラー: 'B::B(int)' の呼び出しに一致する関数がありません main.cpp:8: 注: 候補は: B::B() main.cpp:8: 注: B::B(const B&)
B は A のコンストラクターを継承すべきではありませんか?
(これはgccを使用しています)