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中的信息关于成员(member)bara 中丢失.

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

相关文章:

python - 通过网络发送结构化数据

c++: long long int 不会写入文件

c++ - 我应该学习 C++ 还是 ASM?

Java 向上转换与向下转换

c++ - OpenCV 编辑单个波段并重新合并

c++ - 通过 "a pointer of the base class"访问未在基类中声明的子类的方法或属性(动态)

c++ - 什么没有继承到 C++ 派生类?显然, operator= 和一些构造函数实际上是继承的

c++ - 什么是 undefined reference /未解析的外部符号错误以及如何修复它?

c++ - 为什么模板只能在头文件中实现?

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