ошибка: нет подходящей функции для вызова 'Subclass :: ...' - PullRequest
1 голос
/ 07 мая 2019

Я делаю проект ООП для школы, и в настоящее время я застрял из-за следующей проблемы:

Скажем, 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 для его работы?

1 Ответ

2 голосов
/ 07 мая 2019

Чтобы получить доступ к члену базового класса, вы должны сказать это явно, например:

if(A::isColliding(objectB)) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...