gpt4 book ai didi

C++多继承函数调用歧义

转载 作者:IT老高 更新时间:2023-10-28 12:29:48 25 4
gpt4 key购买 nike

我有一个与 C++ 中的多重继承相关的基本问题。如果我有如下代码:

struct base1 {
void start() { cout << "Inside base1"; }
};

struct base2 {
void start() { cout << "Inside base2"; }
};

struct derived : base1, base2 { };

int main() {
derived a;
a.start();
}

这会产生以下编译错误:

1>c:\mytest.cpp(41): error C2385: ambiguous access of 'start'
1> could be the 'start' in base 'base1'
1> or could be the 'start' in base 'base2'

有没有办法使用派生类对象从特定基类调用函数start()

我现在不知道用例,但是.. 仍然!

最佳答案

a.base1::start();

a.base2::start();

或者如果你想专门使用一个

class derived:public base1,public base2
{
public:
using base1::start;
};

关于C++多继承函数调用歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845854/

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