- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三次实验(类的组合)2
类与对象-类的组合 第3次实验(2学时) 实验目的 1.深入理解简单类的定义、说明与使用 2.深入理解类中不同属性数据成员的访问特点 3.深入理解构造函数、析构函数的作用 4.理解组合类的定义与使用 4.4类的组合 1.类的组合的概念? 2.类中数据成员的初始化? 重点理解: 概念:一个类内嵌其他类的对象作为其成员数据。 作用:实现包含与被包含关系的数据结构。 例:定义一个线类Line,其数据成员是点类point的对象 4.4.1组合 1)类组合的构造函数设计: 原则:不仅要负责对本类中的基本类型成员数据赋初值,也要对内嵌对象成员初始化。 形式: 类名::类名(对象成员所需的形参,本类成员形参) :对象1(参数),对象2(参数),...... { 本类初始化 } 调用内嵌对象构造函数 4.4.1组合 说明: 2)构造函数调用顺序: 先调用内嵌对象的构造函数,然后调用本类的构造函数。 若调用默认构造函数(即无形参的),则内嵌对象的初始化也将调用相应的默认构造函数。 4.4.1组合 说明: 3)析构函数调用顺序: 先调用本类析构函数,然后调用内嵌对象析构函数,调用顺序与他们在组合类的定义中出现的次序刚好相反。 4.4.1组合 说明: 例:设计一个用于人事管理的人员类,其中的人员出生日期声明为一个日期类内嵌子对象。 思路: 1)定义日期类data; 2)定义人员管理类pepole data类: //data.h class data { private: int m_iyear; int m_imonth; int m_iday; public: data(int year=0,int month=0,int day=0) { m_iyear=year; m_imonth=month; m_iday=day; } data(data dy) { m_iyear=dy.m_iyear; m_imonth=dy.m_imonth; m_iday=dy.m_iday; } void show(); }; //data.cpp #include iostream.h #include data.h void data::show() { coutm_iyear年m_imonth月m_iday日endl;; } //pepole.h #include data.h #include string.h class pepole { private: int m_inum; char m_sex[10]; data m_birthday; char m_id[20]; public: pepole(int num,char *sex,data birthday,char *id):m_birthday(birthday) { m_inum=num; strcpy(m_sex,sex); strcpy(m_id,id); } void show(); }; //pepole.cpp #include pepole.h #include iostream.h void pepole::show() { coutthe information:endl; coutthe num:m_inumendl; coutthe sex:m_sexendl; coutthe birthday: ; m_birthday.show(); coutthe id:m_idendl; } void main() { data birthday1; pepole fangyanhong(001,女,birthday1,1501021978); fangyanhong.show(); } pepole类: 实验内容 1.实验任务(3). 2.定义线段类,计算两点间距离。 汽车很复杂,汽车工程师使它很容易被驾驶。这是我们的榜样。 汽车很复杂,汽车工程师使它很容易被驾驶。这是我们的榜样。
文档评论(0)