gpt4 book ai didi

c++ - 为什么会发出两次错误?

转载 作者:太空狗 更新时间:2023-10-29 22:52:52 25 4
gpt4 key购买 nike

完全意识到,我问的问题不在 C++ 标准的范围内,我很想知道为什么 GCC 会两次抛出相同的错误?我知道为什么会出现错误,但我期待了解错误消息重复的原因。

#include <iostream>
using namespace std;

struct A{
virtual void f1() = 0;
};

struct B : A{
};

struct C : A{
void f1(){}
};

struct D : C, B{
void f2(){f1();}
};

int main(){}

错误:

prog.cpp: In member function ‘void D::f2()’:
prog.cpp:16: error: reference to ‘f1’ is ambiguous
prog.cpp:5: error: candidates are: virtual void A::f1()
prog.cpp:12: error: virtual void C::f1()
prog.cpp:16: error: reference to ‘f1’ is ambiguous
prog.cpp:5: error: candidates are: virtual void A::f1()
prog.cpp:12: error: virtual void C::f1()

最佳答案

您使用的是哪个版本的 G++?

有趣的是,使用 Apple 的 G++ 4.2.1 编译您在 MacOS X 10.6.4 上显示的代码时,我收到了双重错误消息。

在我自己构建的 G++ 4.5.1 中,我只收到一个警告。

看起来有一个错误已被修复。

关于c++ - 为什么会发出两次错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3528070/

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