问题是我对 vector 和模板没有做太多事情。
如果我有一个作为模板类的foo类,并且我想创建一个foo指针的 vector ,而不管foo的类型如何,那么语法会是什么样?
最佳答案
不可能。在任何地方使用类模板时,都需要在类型上实例化它。
一种可能的解决方法是,为foo
提供一个多态接口(interface)基类,并为这些指针提供 vector 。
class IFoo{
virtual void bar() = 0;
virtual int baz() = 0;
};
template<class T>
class Foo : IFoo{
// concrete implementations for bar and baz
};
// somewhere in your code:
std::vector<IFoo*> vecFoo.
vecFoo.push_back(new Foo<int>);
显而易见的问题是,您不需要知道
bar
和baz
函数的每个可能的返回值。