【发布时间】:2016-02-14 21:49:45
【问题描述】:
我有以下设置:
class Parent {
virtual void foo(int x) = 0;
};
class Son : public Parent {
void foo(int x) {};
};
class Daughter : public Parent {
virtual void foo(int x) {};
};
如果我有 vector<Parent> parents 并且我正在遍历带有循环的向量,如下所示:
for (int i = 0; i < parents.size(); i++) {
Parent s = parents[i];
s.foo(-1);
}
我如何称呼孩子的 foo(他们可能是儿子或女儿)?我目前遇到两个错误:
-
Variable type 'Parent' is an abstract Variable type 'Parent' is an abstract class
【问题讨论】:
-
@Barry 修复了推导,这只是我的问题中的一个错字,而不是真正的代码。
标签: c++ polymorphism abstract-class virtual-functions