У меня есть следующие настройки:Вызов виртуальных методов неизвестного класса детской
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);
}
Как я называю детей foos (они могут быть сыновьями или дочерьми)? Я получаю две ошибки в настоящее время:
Variable type 'Parent' is an abstract
Variable type 'Parent' is an abstract class
@Barry исправил вывод, который был только опечаткой в моем вопросе, а не реальным кодом. – Bren