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