我有一个基于虚拟功能设计的运动系统。 Exercise类是由所有其他类继承的抽象类。
class Exercise
{
public:
Exercise();
virtual void ExerciseName() = 0;
virtual void Height();
virtual void show() = 0;
virtual void Speed();
virtual void Weight();
~Exercise();
};
我想将三个运动(运动实例)填充到一个数组中。这是我尝试过的代码:
Exercise exercises[3];
这具有以下错误: 不允许抽象类“ Exercise”的错误(活动)E0604数组:OOP_2017_Q2 H:\ OOP_2017_Q2 \ OOP_2017_Q2 \ OOP_2017_Q2.cpp 15
如何将三个练习填充到一个数组中,其中基类使用纯虚函数?
答案 0 :(得分:2)
使用(智能)指针的向量,例如:
std::vector<std::unique_ptr<Exercise>> exercises(3);
然后您可以使用它们:
exercises[0].reset(new MyExercice);