bugprone-copy-constructor-init

查找复制构造函数,其中构造函数没有调用基类的复制构造函数。

class Copyable {
public:
  Copyable() = default;
  Copyable(const Copyable &) = default;

  int memberToBeCopied = 0;
};

class X2 : public Copyable {
  X2(const X2 &other) {} // Copyable(other) is missing
};

还会查找基类构造函数没有参数的复制构造函数。

class X3 : public Copyable {
  X3(const X3 &other) : Copyable() {} // other is missing
};

在复制构造期间未能正确初始化基类子对象会导致未定义的行为、崩溃、数据损坏或其他意外结果。该检查确保派生类的复制构造函数正确调用基类的复制构造函数,有助于防止错误并提高代码质量。

限制

该检查还在某些情况下建议修复建议。