c++ - 什么是对象切片?

标签 c++ inheritance c++-faq object-slicing

在 C++ 中,什么是对象切片以及它何时发生?

最佳答案

“切片”是指将派生类的对象分配给基类的实例,从而丢失部分信息 - 其中一些被“切片”掉。

例如,

class A {
   int foo;
};

class B : public A {
   int bar;
};

所以 B 类型的对象有两个数据成员,foobar

那么如果你要这样写:

B b;

A a = b;

然后b中关于成员bar的信息在a中丢失了。

关于c++ - 什么是对象切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56487879/

相关文章:

c++ - 将 protobuf 与 boost asio 结合使用

c++ - 未定义的行为和顺序点

c++ - 静态构造函数顺序与组合是否正确

c++ - std::bind 在作为右值引用传递时丢失引用

c++ - 了解具有不同签名的继承和函数

c# - C#中通过抽象类显式实现属性

c++ - 不带多态性的抽象基类

c++ - 为什么不#include <bits/stdc++。h>?

c++ - 什么是 undefined reference /未解析的外部符号错误,我该如何解决?

c++ - 混合使用 C 和 C++ 的库/链接器问题