相关疑难解决方法(0)

继承和方法重载

为什么C++编译器会出现此错误?为什么我可以从B访问lol(),但无法访问rofl()[不带参数].捕获量在哪里?

class A
{
public:
   void lol(void) {}
   void rofl(void) { return rofl(0);}
   virtual void rofl(int x) {}
};

class B : public A
{
public:
   virtual void rofl(int x) {}
};

int _tmain(int argc, _TCHAR* argv[])
{
    A a;
   a.lol();
   a.rofl(1);
   a.rofl();

   B  b;
   b.lol();
   b.rofl(1);    
   b.rofl(); //ERROR -> B::rofl function does not take 0 arguments


   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ inheritance overriding overloading

18
推荐指数
1
解决办法
9624
查看次数

标签 统计

c++ ×1

inheritance ×1

overloading ×1

overriding ×1