cppcoreguidelines-slicing¶
检测成员变量或 vtable 的切片操作。当将派生对象复制到基对象时,会发生切片:派生对象的成员(包括成员变量和虚拟成员函数)将被丢弃。这在成员函数切片的情况下可能会产生误导,例如
struct B { int a; virtual int f(); };
struct D : B { int b; int f() override; };
void use(B b) { // Missing reference, intended?
b.f(); // Calls B::f.
}
D d;
use(d); // Slice.