我刚刚遇到了一个错误(我自己造成的!),表现如下。我有一个带有虚拟成员函数的类,我需要通过为一些新用例添加一个额外的参数来扩展它。我用默认值添加了它,这样它就不会中断任何当前调用。我错过的是,还有另一个类继承自此类,该类具有对该函数的覆盖,但不再是覆盖。虽然我知道 override关键字来避免在添加新代码时出现这种情况,我想知道是否有任何方法可以找到词法上足够接近的所有函数,从而可能出现类似的错误。曾经做过一次,我有可能在过去的某个时间做过,并且想回顾性地检查代码库。
最佳答案
Clang 有警告标志 -Woverloaded-virtual
struct Base
{
virtual void foo(int = 42) {}
};
struct Derived : Base
{
virtual void foo() {} // Oups
};
您可能还对 clang-tidy with modernize-use-override 感兴趣,以添加 override
并在将来避免任何 C++11 兼容编译器中出现此错误。
关于c++ - 在 C++ 中查找紧密成员函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54347323/