Неявное приведение класса, производного от базового класса шаблона

У меня проблема с неявным приведением типов, шаблонами и наследованием из классов шаблонов. Следующее - это то, что я извлек из своего проекта, я не упомянул, что некоторые классы даже абстрактны, но это не имеет отношения к случаю.

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 в качестве параметра .

Заранее спасибо.

5
задан opatut 4 June 2011 в 18:16
поделиться