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

参见英文答案 > C++ virtual override functions with same name                                    4个
标题可能令人困惑.

假设我们有以下设置;

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

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

class C: public A, public B
{
};

有没有办法在C类中定义A :: fn?

解决方法:

不,这是不可能的.它总是与fn()中的任何一个冲突.

fn()的语法不同,

void fn();  // in A

而在B中,

int fn();  // in B

你必须在A和B中使这些语法相同,让C实现fn(). Demo.

上一篇:我可以重写一个隐藏的(但公共)方法并调用其超级方法吗?


下一篇:容智信息喜获36氪“中国企服软件金榜”与“数字化创新标杆奖”双重殊荣