在C ++中查找封闭成员函数名称

时间:2019-01-24 13:03:06

标签: c++ virtual

我刚刚遇到了一个(我自己造的!)错误,表现如下。我有一个带有虚拟成员函数的类,我需要通过为一些新用例添加一个额外的参数来扩展该类。我添加了默认值,使其不会中断任何当前通话。我错过的是,有另一个从该类继承的类,该类具有对该函数的替代,而该替代不再是替代。尽管我知道override关键字可以在添加新代码时避免这种情况,但我想知道是否有任何方法可以找到所有词法上足够接近的功能,以免发生类似错误。一旦完成此操作,就有可能在过去的某个时候完成此操作,并想回顾一下代码库。

1 个答案:

答案 0 :(得分:5)

Clang具有警告标记format(value, big.mark=" ", drop0trailing=TRUE, trim = TRUE) # [1] "1 234.5" "1" "12.34"

-Woverloaded-virtual

Demo

您可能还对clang-tidy和modernize-use-override感兴趣,希望添加struct Base { virtual void foo(int = 42) {} }; struct Derived : Base { virtual void foo() {} // Oups }; 并避免将来在任何符合C ++ 11的编译器中发生此错误。