У меня проблема с моим кодом.C++ Как вызвать дочерний метод в абстрактном родительском классе?
class A{
virtual foo()=0;
}
class B: public A {
foo();
foo2();
operator X(A * a) {a->foo2()} //doesn't work
}
class C: public A {
foo();
foo2();
operator X(A * a) {a->foo2()} //doesn't work.
}
Таким образом, у меня есть виртуальный класс и 2 класса, которые наследуют его. И я должен определить оператор X, который действует на объект A, независимо от того, является ли он B или C (поскольку он не может быть A, поскольку A является абстрактным). Проблема в том, что оператор вызывает foo2(), который мне не разрешено писать в классе A. Что мне делать?
Большое спасибо за помощь. Это мой первый пост.
Изменить сигнатуру оператора на 'X (B * a)'. –
Это потому, что 'foo2()' не является частью класса A. –
Я не могу изменить подпись оператора. Я предполагаю, что мой оператор X работает, независимо от того, является ли это B или C. Я вижу только это как A ... – Student000