可以说我有以下
class Parent {
protected:
virtual void overrideMe() = 0;
}
class ChildA : public Parent {
protected:
void overrideMe() = 0{}
}
class ChildB : public Parent {
protected:
void overrideMe() = 0{}
}
class UtilClass {
public:
vector<Parent> planes;
void compute() {
Parent& p = planes[0];
}
}
在这种情况下,我会在 UtilsClass 中的 compute() 中出现错误,即“父级”无法初始化。
我想做的是在 UtilClass 中填充数组“平面”(使用 ChildA 或 childB,即非混合类型)并进行一些计算。
我必须在初始化期间使用指针,还是更好地使用模板?我几乎可以肯定模板的使用不是必需的,因为我想将使用限制在 Parent 类的唯一子级。