- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计一深入类与对象分析
深入类与对象——友元(friend) 友元类:如果类B是类A的友元,则类B的所有成员函数都可以访问类A的私有成员。反之不成立(即友元关系是单向的)。 声明方法: class friend 类名 特别提醒:由于友元的使用会破坏类的封装性,除非万不得已的情况,最好不要使用。 深入类与对象——再议构造函数 思考.1:要实现一个表示一条线段的类。 由于两点可以表示一条线段,因此我们可以使用构造好的Point类来方便的实现 class Line { public: Line(); int GetLength(); private: Point m_ptBegin; Point m_ptEnd; }; 此两成员均为Point类的对象,怎么构造呢? 如果由Line类负责构造,此构造函数应该怎么写呢? 深入类与对象——再议构造函数 思考.2:假设Line类已经可用,考虑一下如何使用 情况1:假设要创建一条从点(3,5)到点(10, 22)的线 Line line(3, 5, 10, 22); Line(int _beginX, int _beginY, int _endX, int _endY); 怎么实现,并构建两个点呢? 答案是利用初始化列表!!! Line::Line(int _beginX, int _beginY, int _endX, int _endY) : m_ptBegin(_beginX, _beginY), m_ptEnd(_endX, _endY) {} 调用了构造函数 深入类与对象——再议构造函数 情况2:创建一条从点(3,5)到点(10, 22)的线,但先创建这两个点。 Point pt1(3, 5), pt2(10, 22); ,pt2 pt1 Line line( ); Line(Point pt_begin, Point pt_end); Line::Line(Point pt_begin, Point pt_end) : m_ptBegin(pt_begin), m_ptEnd(pt_end) {} 调用了拷贝构造函数 Line(Line oldLine); Line::Line(Line oldLine) : m_ptBegin(oldLine.m_ptBegin), m_ptEnd(oldLine.m_ptEnd) {} 深入类与对象——再议构造函数 复习:简单的Line类 //in “Line.h” #include “Point.h” class Line { public: Line(int _beginX, int _beginY, int _endX, int _endY); Line(Point pt_Begin, Point pt_end); int GetLength(); private: Point m_ptBegin; Point m_ptEnd; }; 深入类与对象——再议构造函数 //in “Line.cpp” #include “Line.h” #include cmath Line::Line(int _beginX, int _beginY, int _endX, int _endY) : m_ptBegin(_beginX, _beginY), m_ptEnd(_endX, _endY) {} Line::Line(Point pt_Begin, Point pt_End) : m_ptBegin(pt_Begin) m_ptEnd(pt_End) {} int Line::GetLength() { int xLength = m_ptEnd.GetX() – m_ptBegin.Get
您可能关注的文档
- 非礼勿扰--个人形象和礼仪+-+学员手册分析.ppt
- 非限制性定语从句分析.ppt
- 非洲--埃及分析.ppt
- 面包车改手扶箱暖风图文教程(面包车通用)分析.doc
- 面向制造物流路径规划的超立方链接算法研究121214分析.doc
- 面向对象与设计模拟题分析.doc
- 面向对象与设计5用例建模分析.ppt
- 面向对象案例学生用分析.ppt
- 面向对象实验分析.doc
- 面具的设计与制作分析.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2025年内蒙古时事政治考试试卷带解析必考题.docx VIP
- 人教版数学三年级下册单元试卷【1-8合集,含答案】.pdf VIP
- 2025年内蒙古时事政治考试试卷带解析参考答案.docx VIP
- (答案)奥赛经典-奥林匹克数学中的几何问题---习题与讲解(第1-2章).pdf VIP
- 奥赛经典奥林匹克数学中的几何问题.pdf VIP
- 奥的斯电梯ACD4 原理图纸注释.pdf VIP
- 2025国家能源集团新疆哈密能源化工有限公司社会招聘(51人)笔试参考题库附答案解析.docx VIP
- 建设项目环境影响报告表.PDF VIP
- 呼吸科利用PDCA循环提高住院患者吸入剂使用正确率品管圈.pptx VIP
- 2024-2030年全球气动导弹弹射发射器(PMEL)行业现状、重点企业分析及项目可行性研究报告.docx
文档评论(0)