在这里和这里发布并回答了类似的问题,但建议的解决方案对我不起作用.
我有三个具有多级继承的类:
class Model
{
public:
Model();
template <typename InputModelType>
void importModel(const InputModelType &m);
virtual void process();
};
class SpecialModel : public Model
{
public:
SpecialModel();
template <typename InputModelType>
void importSpecialModel(const InputModelType &m);
virtual void process() override;
};
class SpecialSpecialModel : public SpecialModel
{
public:
SpecialModel();
template <typename InputModelType>
void importSpecialSpecialModel(const InputModelType &m);
virtual void process() override;
};
Run Code Online (Sandbox Code Playgroud)
子模型是父模型的特例,可以存储在更简单的结构中,因此可以更快地处理.
我想要做的是根据model_type用户指定的输入参数来实例化模型,如下所示:
Model* model;
switch(model_type){
case 1:
model = new SpecialModel;
model->importSpecialModel(gm);
break;
case 2: …Run Code Online (Sandbox Code Playgroud)