Почему этот код:
class A
{
    public: 
        explicit A(int x) {}
};
class B: public A
{
};
int main(void)
{
    B *b = new B(5);
    delete b;
}
Результат этих ошибок:
main.cpp: In function ‘int main()’: main.cpp:13: error: no matching function for call to ‘B::B(int)’ main.cpp:8: note: candidates are: B::B() main.cpp:8: note: B::B(const B&)
Не следует ли B наследовать конструктор A?
(используется gcc)
