Единственный способ сделать это - использовать приведение:
// a C++ style static_cast:
C* q = static_cast<C*>(p);
// or the less verbose C-style cast
C* q = (C*)p;
Поскольку C
является производной от A
, а не каждый A
является C
, он не может быть неявно приведен (как вы могли бы неявно привести C*
к A*
, поскольку каждый C
является A
(т. Е. A
имеет «меньше или равных характеристик», чем C
, но не более)).
Я сомневаюсь, что на самом деле должно иметь неявное приведение между типами указателей. Что заставляет вас думать, что вы делаете?