C++ 对象切片在c++;?

C++ 对象切片在c++;?,c++,inheritance,C++,Inheritance,第1行和第2行都将执行对象切片还是单独执行第1行?谢谢你的时间 class Base{ }; class Derived : public Base{ }; main() { Derived d1; Base b1 = d1; //line 1 Base &b2 = d1; // line 2 } 只有第一个赋值可以导致切片,因为该赋值涉及一个副本。第二个赋值仅引用对象。如果没有副本,就无法进行切片。您忘记了main的返回类型。嘿,David He

第1行和第2行都将执行对象切片还是单独执行第1行?谢谢你的时间

class Base{
};

class Derived : public Base{
};

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

只有第一个赋值可以导致切片,因为该赋值涉及一个副本。第二个赋值仅引用对象。如果没有副本,就无法进行切片。

您忘记了
main
的返回类型。嘿,David Heffernan,谢谢您的输入!