Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于隐藏基函数的警告 我有一个C++代码库,其中基类中的一些非虚方法或派生类中的虚拟或非虚方法覆盖/隐藏。这主要是代码中的错误_C++_Inheritance_Virtual Functions_Method Hiding - Fatal编程技术网

关于隐藏基函数的警告 我有一个C++代码库,其中基类中的一些非虚方法或派生类中的虚拟或非虚方法覆盖/隐藏。这主要是代码中的错误

关于隐藏基函数的警告 我有一个C++代码库,其中基类中的一些非虚方法或派生类中的虚拟或非虚方法覆盖/隐藏。这主要是代码中的错误,c++,inheritance,virtual-functions,method-hiding,C++,Inheritance,Virtual Functions,Method Hiding,我可以做些什么来自动检查编译器警告或工具之类的情况吗 这类似于or,但我正在寻找一个实际的解决方案,以检测现有代码库中的这些问题。也许只是对隐藏函数的一个警告就足够了(我认为这个列表足够小,可以一个接一个地浏览) 手动更改代码基以添加“override”或“final”等不是选项,因为此检查只应执行一次。一个全局解决方案,比如定义“最终”所有非虚拟函数,防止它们被隐藏,就可以了 我使用的是Visual Studio 2012,但也可以访问ubuntu和gcc。“手动更改代码库以添加“覆盖”或“最

我可以做些什么来自动检查编译器警告或工具之类的情况吗

这类似于or,但我正在寻找一个实际的解决方案,以检测现有代码库中的这些问题。也许只是对隐藏函数的一个警告就足够了(我认为这个列表足够小,可以一个接一个地浏览)


手动更改代码基以添加“override”或“final”等不是选项,因为此检查只应执行一次。一个全局解决方案,比如定义“最终”所有非虚拟函数,防止它们被隐藏,就可以了


我使用的是Visual Studio 2012,但也可以访问ubuntu和gcc。

“手动更改代码库以添加“覆盖”或“最终”之类的内容不是一个选项,因为此检查只应执行一次。”您是否可以不执行要检查的函数,如果它们当前不是虚拟的,则将其设置为虚拟的,然后给它们添加一个
final
说明符,并对其进行编译,以查看它被覆盖的位置,然后在完成后将其更改回原来的位置?@RyanP听起来像一个大的代码库,OP不想手工完成。难道
/W4
还不够吗?@是的。大代码库,我想检查所有的代码@DYPW4的输出非常多,我还没有发现针对这种特殊情况的警告(如果有,我可以手动启用它,这将非常好),我已经链接了上面的C4263,它特别是关于函数隐藏,但不是重写基类的函数。