第三次实验(类的组合)2_第1页
第三次实验(类的组合)2_第2页
第三次实验(类的组合)2_第3页
第三次实验(类的组合)2_第4页
第三次实验(类的组合)2_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类与对象-类的组合

第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)定义人员管理类pepoledata类://data.hclassdata{private: intm_iyear; intm_imonth; intm_iday;public: data(intyear=0,intmonth=0,intday=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; } voidshow();};//data.cpp#include<iostream.h>#include"data.h"voiddata::show(){ cout<<m_iyear<<"年"<<m_imonth<<"月"<<m_iday<<"日"<<endl;;}//pepole.h#include"data.h"#include"string.h"classpepole{private: intm_inum; charm_sex[10]; datam_birthday; charm_id[20];public: pepole(intnum,char*sex,databirthday,char*id):m_birthday(birthday) { m_inum=num; strcpy(m_sex,sex); strcpy(m_id,id); } voidshow();};//pepole.cpp#include"pepole.h"#include<iostream.h>voidpepole::show(){ cout<<"theinformation:"<<endl; cout<<"thenum:"<<m_inum<<endl; cout<<"thesex:"<<m_sex<<endl; cout<<"thebirthday:"; m_birthday.show(); cout<<"theid:"<<m_id<<endl;}voidmain(){ databirthday1; pepolefangyanhong(001,"女",b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论