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

比较运算符不应为虚函数

6.8.12 ID_virtualComparison
目录 › next › previous

重载的比较运算符很难正确触发 C++ 的多态机制,将其设为虚函数很可能引发意料之外的错误。

运算符 ==、!=、<、>、<=、>= 均受本规则限制。

示例:

class A {
    ....
public:
    virtual bool operator == (const A&) const;  // Non-compliant
};

class B: public A {
    ....
public:
    virtual bool operator == (const B&) const;  // Non-compliant, not overloaded
};

参考

C++ Core Guidelines C.87
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.