从不同的基类重载同名的虚函数.可能吗?

eug*_*e2k 9 c++ inheritance overriding virtual-functions

标题可能令人困惑.

假设我们有以下设置;

class A
{
public:
    virtual void fn() = 0;
};

class B
{
public:
    virtual int fn() {};
};

class C: public A, public B
{
};
Run Code Online (Sandbox Code Playgroud)

有什么办法来定义A::fnclass C

iam*_*ind 2

。这不可能。它总是会与其中任何一个发生冲突fn()

的语法fn()不同,

void fn();  // in A
Run Code Online (Sandbox Code Playgroud)

并且在B是,

int fn();  // in B
Run Code Online (Sandbox Code Playgroud)

您必须使这些语法与A和中的语法相同B才能C实现fn(). 演示