我想在c ++中使用模板化类,其中一个模板参数由运行时用户输入确定。我很确定有一种简单而好的方法可以做到这一点,但我对c ++很陌生,我仍然在努力研究多态和模板类...
以下是我想做的事情:
if (argument==0)
typedef Class1 ActualClassUsed;
if (argument==1)
typedef Class2 ActualClassUsed;
MyTemplatedClass<ActualClassUsed> * object= MyTemplatedClass<ActualClassUsed>::New();
显然在上面的例子中,在正确的范围内没有定义ActualClassUsed ...任何简单的方法来纠正这个?
感谢您的帮助!
答案 0 :(得分:0)
模板实际上是使用相应的数据(仅需要的数据类型,而不是所有)类型复制相同的代码。这实际上是在编译时发生的。
当不同的数据类型(用户定义或内置数据类型)以相同的方式处理时,模板很有用
目前无法在运行时实例化模板。
答案 1 :(得分:0)
我想在c ++中使用模板化类,其中一个模板参数由运行时用户输入确定。我很确定有一种简单而好的方法可以做到这一点
没有。 实际上,根本不可能通过设计。
模板是一个开发人员工具,可以在您编译程序时生成代码,希望在任何用户运行 之前发生 ,时间旅行除此之外很难在有人给你之前使用信息。
根据未来司机将使用它的日期,您无法确定您在工厂中建造的汽车的固定颜色。如果你想要这样的东西,它必须是一个动态变色龙,如颜色,它会根据当天的变化而变化。