☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

不建议虚函数的参数有默认值

6.5.5 ID_deprecatedDefaultArgument
目录 › next › previous

虚函数参数的默认值不受多态规则控制,通过基类指针或引用调用派生类重写的虚函数时,默认值仍采用基类中的定义,易造成混淆,故不建议虚函数的参数有默认值。

示例:

class A {
public:
    virtual int foo(int i = 0);   // Bad
};

应尽量去掉默认参数值,或改用重载函数的方式:

class A {
public:
    virtual int foo();        // OK
    virtual int foo(int i);   // OK
};

相关

ID_inconsistentDefaultArgument

依据

ISO/IEC 14882:2003 8.3.6(10) ISO/IEC 14882:2011 8.3.6(10) ISO/IEC 14882:2017 11.3.6(10)

参考

CWE-628 C++ Core Guidelines C.140 MISRA C++ 2008 8-3-1
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.