gpt4 book ai didi

c++ - 虚函数实现的菱形继承(钻石问题)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:42:11 24 4
gpt4 key购买 nike

对于c++中的菱形问题,如果Base和medium level类已经实现了虚函数。如何消除给定的错误?

#include <iostream>

using namespace std;

class Base
{
public:
virtual void display()
{
cout<<"In Base"<<endl;
}
};

class Der1:virtual public Base
{
public:

void display()
{
cout<<"In Der1"<<endl;
}
};

class Der2:virtual public Base
{
public:
void display()
{
cout<<"In Der2"<<endl;
}
};

class Mix: public Der1, public Der2
{
};

int main()
{
cout << "Hello World!" << endl;
Mix m_mix;
m_mix.display();
return 0;
}

我遇到以下错误:-

main.cpp:50: 错误:对成员 'display' 的请求不明确 m_mix.display();

我们如何使用 Mix 类的对象访问 Der1 和 Der2 的 display()?

最佳答案

为了解决歧义,可以明确指定函数,例如:

m_mix.Der1::display();

关于c++ - 虚函数实现的菱形继承(钻石问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26714446/

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