(40)--5.3.2包含子对象的派生类构造函数.ppt

(40)--5.3.2包含子对象的派生类构造函数.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

包含子对象的派生类构造函数子对象概念:类中的数据成员中包含类对象例如:Students1; //Student是已声明的类名,s1是Student类的对象

程序实例—包含子对象的派生类的构造函数#includeiostream#includestringusingnamespacestd;classStudent //声明基类{public: //公用部分 Student(intn,stringnam) //基类构造函数 {num=n; name=nam; } voiddisplay() //成员函数,输出基类数据成员 {cout″num:″numendl″name:″nameendl;}protected: //保护部分 intnum; stringname;};

程序实例—包含子对象的派生类的构造函数classStudent1:publicStudent //声明公用派生类Student1 {private: //派生类的私有数据 Studentmonitor; //定义子对象(班长) intage; stringaddr;public: Student1(intn,stringnam,intn1,stringnam1,inta,stringad) :Student(n,nam),monitor(n1,nam1) //派生类构造函数 {age=a; addr=ad; } voidshow() {cout″Thisstudentis:″endl; display(); //输出num和name cout″age:″ageendl; //输出age cout″address:″addrendlendl;//输出addr }

程序实例—包含子对象的派生类的构造函数 voidshow_monitor() //成员函数,输出子对象 {coutendl″Classmonitoris:″endl; monitor.display(); //调用基类成员函数 }};intmain(){ Student1stud1(10010,″Wang-li″,10001,″Li-sun″,19,″115Beijing Road,Shanghai″); stud1.show(); //输出学生的数据 stud1.show_monitor(); //输出子对象的数据 return0;}

程序实例—包含子对象的派生类的构造函数程序运行结果:Thisstudentis:num:10010name:Wang-liage:19address:115BeijingRoad,ShanghaiClassmonitoris:num:10001name:Li-sun

包含子对象的派生类构造函数派生类构造函数的任务应该包括3个部分:对基类数据成员初始化;对子对象数据成员初始化;对派生类数据成员初始化。

包含子对象的派生类构造函数一般形式为:派生类构造函数名(总参数表):基类构造函数名(参数表),子对象名(参数表){派生类中新增数据成员初始化语句}

包含子对象的派生类构造函数执行派生类构造函数的顺序:调用基类构造函数,对基类数据成员初始化;调用子对象构造函数,对子对象数据成员初始化;再执行派生类构造函数本身,对派生类数据成员初始化。

小结子对象的概念1派生类构造函数的任务2派生类构造函数的一般形式3派生类构造函数的执行顺序4

您可能关注的文档

文档评论(0)

158****6446 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档