问题是我对 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>);

显而易见的问题是,您不需要知道barbaz函数的每个可能的返回值。

10-06 12:42
查看更多