带有工厂的类模板 我试图在C++中实现一个非常基本的工厂模式,即 class Base {}; class Derived1 : public Base {}; class Derived2 : public Base {};
用法可能类似于带有工厂的类模板 我试图在C++中实现一个非常基本的工厂模式,即 class Base {}; class Derived1 : public Base {}; class Derived2 : public Base {};,c++,templates,factory,C++,Templates,Factory,用法可能类似于 Base* o1 = new Derived(); 但是,对于类模板,我不确定如何继续 template <class T> class Base {}; template <class T> class Derived : public Base<int> {}; 模板 类基{}; 模板 派生类:公共基{}; 在这种情况下,基*会是什么样子 不幸的是,在我的例子中,使用auto不是一个选项,我希望能够让客户端不必知道实际的T是什么 te
Base* o1 = new Derived();
但是,对于类模板,我不确定如何继续
template <class T>
class Base {};
template <class T>
class Derived : public Base<int> {};
模板
类基{};
模板
派生类:公共基{};
在这种情况下,基*会是什么样子
不幸的是,在我的例子中,使用auto不是一个选项,我希望能够让客户端不必知道实际的T是什么
template <class T> class Base {};
template <class T>
class Derived : public Base<int> {};
模板类基类{};
模板
派生类:公共基{};
你可以
Base<int>* b_int = new Derived<char>; // All Derived<T> has base Base<int>
Base*b_int=new-Derived;//所有派生都有基
你的意思是所有的基类型都应该从一些常见的、非模板化的、实际的基继承吗?“在这种情况下,基*看起来像什么?”在这种情况下,你必须编写Base*o1=new-Derived代码>而不是。。。除非,如建议的那样,你让你的Base
类继承一个非模板化的实际基类。@Wyck如果我理解正确,你是说我应该能够做以下事情?类基类{}模板类TBAse:public Base{}模板类派生:public TBAse Base*d=new-Derived()?