У меня проблема с неявным приведением типов, шаблонами и наследованием из классов шаблонов. Следующее - это то, что я извлек из своего проекта, я не упомянул, что некоторые классы даже абстрактны, но это не имеет отношения к случаю.
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
который я получил Производное: общедоступная база
из. Затем я должен преобразовать его в наиболее распространенную форму Базы, которая является Базой
.
Я бы подумал, что могу разыграть Объект, полученный из Базы От
до Base
неявно, поскольку B
происходит от A
. Я что-то делаю не так, или как я мог неявно использовать этот ? Это важно, поскольку мне нужно принять все типы производных классов в методе Base
в качестве параметра .
Заранее спасибо.