C++中的切片现象

来源:百度知道 编辑:UC知道 时间:2024/06/01 18:12:36
请问C++中切片现象是什么意思
请举例说明各种c++程序中的切片现象, 造成的原因,以及解决方法!

请各位高手指教,如果解释很到位 我会追+分数 ,信誉至上,绝不食言
拜托各位了

(1)一般来说,就是向上类型转化过程中,派生类被截成只有基类相同的部分。
(2)derivedclassobject赋值给baseclassobject时classbase{public:inta;}classderived:publicbase{public:intb;}intmai{derivedd;baseb=d;return0;}
答:d存在a,b数据成员赋值给a的时候,d.b切片了,d.a赋值给了b.a 对象切片通常发生在子类对象被赋值到父类对象时,由于子类在继承父类时,通常会增加一些变量或函数,这样子类的大小比父类大,则在赋值时,子类对象拷贝到父类对象不完全,即发生切片现象.

比如类cat是继承类animal,
animal里只有一个成员变量weight;
cat里有继承的成员变量weight,另外还有成员变量catkind以及一个函数shout();

现在有一个函数f(animal xxx);这个函数接收一个animal类的对象为参数,
因为cat是继承animal的,所以cat可以作为这个函数f()的参数传入,
当一个cat类的对象被作为animal类的对象传入f()时,就发生切片现象
cat里的成员catkind和shout()都被切掉了,只剩下weight变量。

http://zhidao.baidu.com/question/70539868.html
看一看这个吧。
看了你就知道了。

楼上意思,是不是常说的类类型转换啊