关于C++父子类对象之间的赋值有关问题

关于C++父子类对象之间的赋值问题
关于C++父子类对象之间的赋值问题
看书上说,子类对象可以赋值给父类对象,我不理解这是为什么?明显子类比父类要大,为什么还可以赋值?
该怎么去理解?我倒是觉得父类对象可以赋值给子类。。。

------解决方案--------------------
你理解错了。找本好书细细看看
------解决方案--------------------
能发现问题是好事!继续努力!
------解决方案--------------------
确实你理解错了,以前我也是这么认为的,但是后来用MFC创建窗口类,发现不是这么个问题~~~~拿本好书看看吧~~~~
------解决方案--------------------
是可以的吧,记得plus里讲过,当然是大的给小的赋值了,要是父类给子类赋值,那你子类新定义的变量怎么办
------解决方案--------------------
你说的赋值应该是两个情况
1.赋值函数
2.拷贝构造
C++的继承中一个十分重要的特点:全盘继承.同时子类可以新增新成员新函数.
如你所说如果用父对象去初始化或赋值给一个子类对象
子类 & operator=(子类 & z)
或子类(子类 & z)
无非走这两个函数来打造一个子类对象,当父类对象作为形参传进去后将会发生无法找到子类新增数据成员情况.
------解决方案--------------------
有个地方说错了.赋值函数不再打造新对象.你滴明白?
------解决方案--------------------
你暂时这么理解吧。
可以把子类某个对象的一部分切掉,让它等价与一个父类对象。
由于子对象一般比父对象大,所以一般不能把父赋值给子。
------解决方案--------------------
是啊,你得做过才能理解得更深刻
------解决方案--------------------
父类如果可以给子类赋值,那么子类中比父类多的部分就无法初始化,会闹出事的;
而子类给父类赋值,能保证所有对象都被正确赋值,多余的切掉就可以了
------解决方案--------------------
看看这篇文章C++如何利用虚函数实现多态性最后那几个图解