错误:没有匹配的函数可调用“ Subclass :: ...”

时间:2019-05-07 11:36:32

标签: c++ class oop polymorphism

我正在上学的OOP项目,由于以下问题,我目前陷入困境:

假设A是我的基类,B继承自AC继承自B

A具有一种检查两个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 个答案:

答案 0 :(得分:2)

为了访问基类成员,您必须这样明确地说:

Scenario Outline: Multiple browsers
  Given I navigate to my setup application
  And I published an article
  When I open client website with "<browser>"
  Then I can see the published article with "<browser>"

Examples:
 | browser  |
 | IE       |
 | Chrome   |
 | Firefox  |
 | Safari   | 
 | Mobile   |