如何在c ++中进行对象切片?

时间:2012-12-23 19:13:22

标签: c++ inheritance

第1行和第2行都会单独进行对象切片或第一行吗?谢谢你的时间!

class Base{
};

class Derived : public Base{
};

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

1 个答案:

答案 0 :(得分:3)

只有第一个分配才能导致切片,因为该分配涉及一个副本。第二个赋值仅仅是对对象的引用。没有副本,就没有切片。