C++ eclipse cdt';s代码分析不需要';我不理解虚拟继承

C++ eclipse cdt';s代码分析不需要';我不理解虚拟继承,c++,eclipse,code-analysis,eclipse-cdt,virtual-inheritance,C++,Eclipse,Code Analysis,Eclipse Cdt,Virtual Inheritance,我有一个带有两个菱形的类层次结构,这是因为必须在装饰器模式中扩展所有类(它们已经虚拟扩展): 以图形方式: A /|\ v /v| \ v / | \ AImpl B ADecorator | / \ | | / \ | |/ \| BImpl BDecorator GCC编译这个代码没有问题,但是eclipse的代码分析坚持BDecorator没有实现foo() 我可以通过在设置中将这种类型的错误设置为

我有一个带有两个菱形的类层次结构,这是因为必须在装饰器模式中扩展所有类(它们已经虚拟扩展):

以图形方式:

       A
      /|\
   v /v| \ v
    /  |  \
AImpl  B  ADecorator
   |  / \  |
   | /   \ |
   |/     \|
BImpl     BDecorator
GCC编译这个代码没有问题,但是eclipse的代码分析坚持BDecorator没有实现foo()

我可以通过在设置中将这种类型的错误设置为“Info”来消除这个问题,但我想知道的是,代码中是否存在GCC忽略的错误,或者我是否可以做些什么来让代码分析接受代码?如果可能的话,我不想让这个代码分析特性静音,这样我就可以很容易地检测出实际的错误


BImpl在实现哪些方法方面与BDecorator有何不同?代码分析对BImpl没有任何抱怨,但它们实现foo()的方式与之类似。

我认为您可能需要再次为代码编制索引。在项目浏览器中右键单击项目,单击索引,然后单击刷新所有文件。这将迫使eclipse为所有代码编制索引

是的,+1表示作为一个新用户,用足够的代码清楚地提问,+1表示酷的ASCII图形。这个问题本身也是一个很好的问题。这似乎没有改变任何事情。我尝试先从“问题”选项卡中删除警告,以确保它们再次生成。这为我修复了相同的问题。。。。现在给我修了两次P再次感谢。
       A
      /|\
   v /v| \ v
    /  |  \
AImpl  B  ADecorator
   |  / \  |
   | /   \ |
   |/     \|
BImpl     BDecorator
The type '_sandbox::BDecorator' must implement the inherited pure virtual method '_sandbox::A::foo'