Я делаю проект ООП для школы, и в настоящее время я застрял из-за следующей проблемы:
Скажем, A
- это мой базовый класс, B
наследуется от A
и C
наследуется от B
.
A
имеет метод, чтобы проверить, сталкиваются ли два объекта типа А.
Этот метод не переопределен / перегружен в C
, но я должен использовать его в этом подклассе.
class A
{
public:
bool isColliding(A);
};
class B : public A
{
};
class C : public B
{
public:
void Eat(B);
}
void C::Eat(B objectB)
{
if(isColliding(objectB))
{
}
}
Это упрощение кода, я просто пытался донести идею.
Возвращает следующее:
error : no matching function for call to 'C::isColliding(B)'
note: candidate: bool A::isColliding(A)
note: no known conversion for argument 1 from 'B' to 'A'.
Как мне заставить этот метод интерпретировать C и B как A для его работы?