gpt4 book ai didi

c++ - 虚拟基类上的虚拟方法

转载 作者:可可西里 更新时间:2023-11-01 17:14:07 25 4
gpt4 key购买 nike

关于虚拟基类继承的一些事情一直让我感到困惑......给定以下类:

class A
{
virtual void foo() = 0;
}
class B : virtual A
{
void foo() { /* do X */ }
}
class C : virtual A
{
void foo() { /* do Y */ }
}
class D : B, C
{
}

这会编译吗?如果是这样,以下代码的结果是什么:

D d;
A* a = &d;
a->foo();

最佳答案

它不应该编译,函数 foo 会产生歧义。由于 A::foo() 是纯虚函数,因此必须解决歧义。

关于c++ - 虚拟基类上的虚拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com