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'