У меня есть следующая иерархия классов.Не определено Виртуальный метод в производном классе, а также
class A {
public:
virtual bool foo() const;
};
class B : public A {
// Redeclare foo as virtual here?
};
class C : public B {
bool foo() const {/*Definition*/ return true;}
};
class D : public B {
bool foo() const {/*Definition*/ return false;}
};
Так что метод foo(), который класс C и D хочет реализовать, B не делает. Как я могу это достичь? Должен ли я повторно объявлять foo() как виртуальный в классе B?
Примечание: игнорируйте незначительную синтаксическую ошибку здесь и там. Это не настоящий код. Мой вопрос касается только концепции.
Вы забыли точки с запятой после объявлений классов в своем фактическом коде? Это вызовет проблемы. – synchronizer
игнорировать синтаксические ошибки. это не фактический код. Мой вопрос о концепции. – Rajat