考虑我有一些Factory类:
class Factory
{
public:
Factory();
virtual ~Factory();
/*
some factory methods
*/
}
所有方法都根据作为参数给出的字符串创建对象。但是其中一种方法会创建依赖于模板参数的对象,如:
template <typename Tp>
some_class<Tp>* fac_meth(string str);
实际类型将在运行时决定 有可能做这样的事吗?
答案 0 :(得分:4)
总而言之:不。
更多的话:在编译时,将发生该函数模板的所有实例化(即编译器将确定不同类型所需的该函数的所有不同实例[例如{{1 }},some_type<int*>
等。])
考虑类似这样的运行时多态(即继承层次结构)。