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

存在拷贝构造函数或析构函数时,不应缺少拷贝赋值运算符

5.1.7 ID_missingCopyAssignOperator
目录 › next › previous

三个紧密相关的函数:

  1. 拷贝构造函数
  2. 拷贝赋值运算符
  3. 析构函数

当这三个函数中的任何一个函数被定义时,其他两个函数也需要被定义,详见“Rule of three”。

示例:

class A {  // Non-compliant, missing copy assignment operator
public:
    A();
    A(const A&);
   ~A();
};

应明确定义赋值运算符:

class A {  // Compliant
public:
    A();
    A(const A&);
   ~A();

    A& operator = (const A&);  // Copy assignment operator
};

相关

ID_missingDestructor ID_missingCopyConstructor ID_violateRuleOfFive

参考

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