- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1617章1继承多态虚函数
上机编程练习2——多继承 * 设计父亲类Father ,母亲类Mother ,孩子类Child ,其主要数据成员是姓名、年龄、民族。孩子继承了父亲的姓和母亲的民族。在主函数中,创建一个孩子对象,并利用该孩子对象输出父母的姓名和民族信息以及孩子的姓和民族。 类的分层 * 继承的访问控制-教材17.5。p389 * * 5. 派生类的构造函数与析构函数 创建对象时要调用构造函数,对象消亡时要调用析构函数。 派生类不继承基类的构造函数和析构函数。 在构造一个派生类时,完成其基类部分的构造由基类的构造函数去做。 在创建派生类对象时,系统要调用派生类的构造函数,在执行派生类构造函数(体)前,系统要先调用其基类的构造函数以实现对从基类继承的数据成员的初始化,再执行派生类构造函数体以实现新增成员的初始化。 派生类对象消亡时,析构函数的执行顺序则正好相反,即先调用派生类的析构函数清除派生类中新声明的数据成员,再调用基类的析构函数清除从基类中继承的数据成员。 * 派生类在构造时,即使可以直接访问基类的保护数据成员以初始化它们,一般也不这么做,而是通过基类的接口函数去访问它们,初始化也是通过基类的构造函数。这样,一旦基类实现有错,只要不涉及接口,基类的修改不会影响派生类的操作。 类与类之间,各做各的,以接口作沟通,即使基类与子类也不例外。 class A { public: A( ); ~A( ); void setx(int a){x=a;} void sety(int b){y=b;} int getx( ) const{return x;} int gety( ) const{return y;} protected: int x; private: int y; }; class B: public A { public: B( ); ~B( ); void setz(int c){z=c;} int getz(){return z;} int getsum( ){return x+gety()+z;} private: int z; }; 例:调用构造函数和析构函数 * A::A( ):x(1),y(2) { cout″调用类A的构造函数″endl; } A::~A( ) { cout″调用类A的析构函数″endl; } B::B( ):z(3) { cout″调用类B的构造函数″endl; } B::~B( ) { cout″调用类B的析构函数″endl; } int main() { B b; cout″X=″b.getx( )″\tY=″b.gety( ) ″\tZ=″b.getz( )endl; cout″X+Y+Z=″b.getsum( )endl; return 0; } 调用类A的构造函数 调用类B的构造函数 X=1 Y=2 Z=3 X+Y+Z=16 调用类B的析构函数 调用类A的析构函数 * 派生类名::派生类名(参数总表):基类1(参数表1),…,基类n(参数表n),对象成员1(对象成员参数表1),…,对象成员n(对象成员参数表n) { 派生类中新声明的数据成员初始化语句 } 对象成员是指在派生类中新声明的数据成员,它是另外一个类的对象,必须在初始化列表中初始化。 基类名和对象成员名之间的编写顺序可以是任意的,且对于使用默认构造函数的基类和对象成员,可以不列出基类名和对象成员名。 一般形式如下 * 多继承时,派生类的构造函数通常带有初始化列表 参数总表包括: 基类数据成员、内嵌对象数据成员、其他数据成员所需的全部数据。 class GraduateStudent : public Student 例:ch16_1.cpp的扩展 { public: GraduateStudent (char * pName, Advisor adv) : Student(pName), advisor(adv) { qualifierGrade=0; } //其余见ch16_1.cpp }; void fn (Advisor advisor
您可能关注的文档
- 生物备考的单元复习策略课标卷.ppt
- 矛盾的同一性和斗争性矛盾普遍性与特殊性上课2.ppt
- 病毒的基本性状3.ppt
- 病毒的基本性状2.ppt
- 第05章投资组合的选择投资学清华大学,朱宝宪.ppt
- 立井井筒延深2.ppt
- 神经生物学课件北大4中枢神经系统发育及其可塑性.ppt
- 第07讲基于受体的药物设计.ppt
- 第10章挤压与拉拔工艺总9.ppt
- 第10章模板匹配与模式识别.ppt
- 广安市邻水县2025年上半年“小平故里英才计划”引进急需紧缺专业人才(27人)模拟试卷及答案详解1套.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才考前自测高频考点模拟试题及答案详.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才考前自测高频考点模拟试题附答案详.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才模拟试卷及答案详解1套.docx
- 广安市邻水县2025年上半年“小平故里英才计划”引进急需紧缺专业人才(27人)模拟试卷及参考答案详解.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才模拟试卷及完整答案详解1套.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才模拟试卷及参考答案详解一套.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才模拟试卷及答案详解一套.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才考前自测高频考点模拟试题及完整答.docx
- 广安市武胜县2025年上半年“小平故里英才计划”引进急需紧缺专业人才考前自测高频考点模拟试题含答案详.docx
文档评论(0)