- 1、本文档共99页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计-继承与派生
* * * * * * * * * * * * * * * * * * * * * * 目的: 类继承,组合 4第四讲——继承与派生 p64 * * * 目的: 类继承,组合 4第四讲——继承与派生 p64 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * void main() { a a1; a1.func(); //in a cout-----------------------------------------endl; b b1; b1.func(); //in b b1.a::func(); //in a cout-----------------------------------------endl; c c1; c1.func(); //in c c1.a::func(); //in a cout-----------------------------------------endl; d d1; d1.func(); //in d d1.b::func(); //in b d1.c::func(); //in c d1.a::func(); //in a } 调整指针有几个?内存布局啥样? #includeiostream.h class B0 { char e; }; class B1 : virtual public B0 { char b1; }; class B2 : virtual public B0 { char b2; }; class D:public B1,public B2 { char d; }; void main() { B0 bb; B1 bb1; B2 bb2; D dd; coutsizeof(bb) sizeof(bb1) sizeof(bb2) sizeof(dd)endl; } 1 9 9 21 这仅是VC 的结果,gcc是另外的样子: 1 8 8 16 对象内存布局图示: dd e b1 B0 B1 B2 1Byte D bb2 e b2 e bb 1 4 4 b2 d 8 8 4 1 = 9 = 21 类的组合 has - a 类的继承 is - a 类的聚集 hold - a 友元类 use - a 局部类 internal - a 内嵌类 embed - a 类模板 template * 类间关系小结: 7种 类的组合是“整体与部件”的关系; 类的继承是“一般与特殊”的关系; 类模板是“抽象与具体”的关系; 类的聚集是“主宰与受控”的关系; 类的友元是“主权与间谍”的关系; 内部和内嵌则是“自己拥有”。 * 从语义上分辨类的关系: Thanks! * * * * * * * * * * * * * * * * * * * * * * * * * * 类型兼容的例子: class Base { int m_a , m_b ; }; class Derived : public Base { int m_c ; }; void main( void ) { Derived objD1; Base objB1= objD1; //发生类型转换(切割) Derived *pD1 = objD1; Base *pB1 = pD1; //发生类型转换(切割) Base robjB1 =objD1; } * * m _a m _b m _c Derived objD1 m _b m _a Base objB1 对象初始化。真切割 m _a m _b m _c Derived objD1 Derived * pD1 Base * pB1 指针初始化假切割 Base robjB1 m _a m _b m _c Derived objD1 引用初始化。假切割 类型兼容的结论 类型兼容前提下的三种初始化或赋值操作中,真正发生“对象切割”的,只有子类对象赋值给父类对象时。 而使用指针或引用,只是逻辑上发生了“切割”,实际上并没有发生,于是才会有后面的“通过强制类型转换,可将静态父类类型回归其动态子类类型
您可能关注的文档
- B2C商城与品牌授权之间的罗生门.doc
- B1级挤塑板薄抹灰体系涂料饰面施工方案1.doc
- B2C电子商务讨论.ppt
- B8节_“江淮之滨”——安徽省课件.ppt
- BDF薄壁管在现浇砼空心板中的应用BDF薄壁管在现浇砼空.doc
- BH业务内训.ppt
- BGA芯片焊接课件靳.ppt
- BIM在建筑设计企业的实施.doc
- bjq_南极人品牌终端管理手册.doc
- bny_-上海市xx房地产营销策划报告.doc
- 第17课 明朝的灭亡和清朝的建立 巩固练习 2024-2025学年下期初中历史统编版七年级下.docx
- 人教版(2019)必修三 Unit 1 Festivals and Celebrations Lis.pptx
- 人教版(2019)必修三 Unit 3 Diverse Cultures Reading for W.pptx
- 人教版(2019) 必修第一册 Unit 1 Teenage Life Reading and.pptx
- 人教版(2019)必修第一册Unit 2 Travelling Around Reading and.pptx
- 六年级单元作文复习.pptx
- 【作文写作法则】(初中语文)第10讲 常考应用文写作模板 学案.doc
- Unit 8 Once upon a Time 重点语法 专题练 2024-2025学.docx
- 人教版(2019)必修第一册Unit 3 Sports and fitness Reading fo.pptx
- 期末综合模拟试题 2024-2025学年下期初中道德与法治统编版八年级下册 (1).docx
最近下载
- KEYENCE基恩士FT 系列 使用说明书 (Web版).pdf
- 基金项目经理招聘面试题(某大型国企)2025年试题集解析.docx VIP
- 人教版小学一年级语文下学期期末检测试卷及答案5套合集6.pdf VIP
- 学习解读中央八项规定精神PPT模板.pptx VIP
- 《市场监督管理行政处罚程序规定》解读精品课件.pptx VIP
- 高中数学归纳法大全数列不等式精华版.docx
- 教学案例教学方法设计.docx VIP
- 3000吨大豆分离蛋白生产线建设项目投资建设可行性分析研究报告_.doc
- 2024年全国电力行业风力发电运维岗位(工种)技能冠军竞赛试题库资料-下(判断、填空题汇总).pdf VIP
- 建筑施工企业事故隐患内部报告奖励机制.docx VIP
文档评论(0)