鱼C论坛

 找回密码
 立即注册
查看: 2313|回复: 5

c++方法的覆盖

[复制链接]
发表于 2014-3-19 22:33:55 | 显示全部楼层 |阅读模式
8鱼币
我想问下大家父类的方法被子类覆盖后那么父类和子类在内存中是怎么分配的,父类和子类中被覆盖的方法又是怎么分配的?
我想问下一个父类生出两个子类,只建立子类对象初始化变量,那么父类中的变量会变成什么?

最佳答案

查看完整内容

从内存布局上来说,子类相当于包含一个无名的父类成员变量(只所以可以无名是因为只可能有一个这样的对象)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-19 22:33:56 | 显示全部楼层
从内存布局上来说,子类相当于包含一个无名的父类成员变量(只所以可以无名是因为只可能有一个这样的对象)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-21 20:59:06 | 显示全部楼层
类的成员函数本身不在对象中占据空间。有虚函数的类存在一个虚表,虚表记录了该类的所有虚函数。当子类覆盖该函数的时候,子类的虚表就改变虚表中相应虚函数位置的记录使之指向新的函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-22 18:05:28 | 显示全部楼层
朋友你说的我看不懂啊,什么叫子类包含一个无名的。。。。。。。。。。。。,我不知道你回答了我的问题没有,我又没问虚函数,子类会包含一个父类的什么变量啊,我没学过无名变量是怎么回事啊,我觉得我的问题还是不解啊,我问的是子类初始化后给他继承下来的变量赋值,然后创建父类的对象,那么父类中被子类继承下来的变量会是什么啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-3-22 18:06:37 | 显示全部楼层
我想问下你的qq号,能加下问问么,这样方便,那就太感谢了版主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-15 10:58:58 | 显示全部楼层
不知道啊,嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表