Можно ли заставить подклассы неявно наследовать конструкторы базовых классов?

Предположим, у меня есть:

class A {
public:
A(int x_) : x(x_) {}
int x;
};

class B: public A { };
class C: public A { };

С этим кодом у B и C не будет никаких конструкторов (кроме конструктора копирования). Я хотел бы что-то изменить в классе A (не в B или же C) так что оба B а также C унаследует конструктор A, Это возможно как-то?

1

Решение

Невозможно иметь их неявно. Вы можете явно иметь конструкторы, доступные через:

class B: public A { using A::A; };
class C: public A { using A::A; };
8

Другие решения

Других решений пока нет …