对象切片是如何在c++中发生的

how object slicing happens in c++?

本文关键字:c++ 切片 对象      更新时间:2023-10-16

第1行和第2行都要做对象切片还是只做第一行?谢谢你的宝贵时间!

class Base{
};
class Derived : public Base{
};
main()
{       
   Derived d1;
   Base b1 = d1;  //line 1
   Base &b2 = d1; // line 2
}

只有第一个赋值可以导致切片,因为该赋值涉及到一个副本。第二个赋值操作仅接受对对象的引用。没有复制,就没有切片。