小编kec*_*sap的帖子

具有相同名称的虚拟成员函数的继承

class A
{
A() {};
virtual ~A() {};
virtual void Start() {};
virtual void Start(float a) {};
};

class B : public A
{ };

class C : public A
{
virtual void Start(float a) {};
}


...
B BObj;
BObj.Start(); // -> fine, no complain from g++
...

...
C CObj;
CObj.Start(); // -> not fine -> error: no matching function for call to ‘C::Start()’
...
Run Code Online (Sandbox Code Playgroud)

我怀疑问题来自于两个虚函数具有相同的名称,但参数签名不同.我想知道的是,这是一个特定于g ++的错误消息,如何实现vtable,或者它是基于C++标准的错误.

c++ virtual inheritance g++ function

2
推荐指数
1
解决办法
1235
查看次数

标签 统计

c++ ×1

function ×1

g++ ×1

inheritance ×1

virtual ×1