У меня проблема с неявным приведением, шаблонами и наследованием из шаблонных классов. Далее я извлек из своего проекта то, что некоторые классы даже абстрактны, но это не имеет отношения к случаю.
class A {};
class B : public A {};
template <typename T> class Base {};
class Derived : public Base<B> {};
int main() {
Derived d;
Base<A>* base = new Derived();
}
По сути, у меня есть базовый класс шаблона Base
, из которого я получаю Derived : public Base<B>
. Затем я должен привести его к наиболее распространенной форме Базы, которая является Base<A>
.
Я бы подумал, что могу разыграть Объект, производный от Base<B>
до Base<A>
неявно, поскольку B
происходит от A
. Я делаю что-то не так или как я могу разыграть это неявно ? Это важно, так как мне нужно принимать все типы производных классов в методе Base
в качестве параметра .
Заранее спасибо.