C++第4章继承与组合.ppt

  1. 1、本文档共161页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 练习:读程序写出运行结果 class D:public A1,public A2 { public: D(int i,int j,int k,int l):A2(i),A1(j),a3(k) { d=l; coutConstructor D.dendl; } ~D() { coutDisconstructor D.dendl; } private: int d; A3 a3;}; int main( ) { D dd(6,7,8,9); return 0;} 本章内容勘误 1. P139 从上面数第2行: if(Stu[i].GetEnglish()Stu[i+1].GetEnglish()) 修改为: if (Stu[j].GetEnglish()Stu[j+1].GetEnglish()) * 练习 编写一个日期和时间的程序,要求有3个类:日期类Date,时间类Time和这两个类的派生类TimeDate。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第4章 继承与组合 class Derived:public Base1, public Base2 {public: Derived(int m,int n,int o,int p,int q): Base(m,n),Base1(m,n,o),Base2(m,n,p) { z=q; } void show () { coutx=xendl; couty=yendl; coutz1=z1endl; coutz2=z2endl; coutz=zendl; } protected: int z;}; * 第4章 继承与组合 int main() { Derived obj(12,13,14,15,16); obj.show(); return 0; } 程序运行结果如下: x=12 y=13 z1=14 z2=15 z=16 * 派生类构造函数调用的次序有3个原则: (1)同一层中对虚基类构造函数的调用优先于对非虚基类构造函数的调用。 (2)若同一层次中包含多个虚基类,则这些虚基类的构造函数按照它们在继承方式中的声明次序调用。 (3)若虚基类由非虚基类派生出来,则仍然先调用基类构造函数,再按派生类中构造函数的执行顺序调用。 4.6.4 虚基类 第4章 继承与组合 * 派生类的析构函数调用的次序与构造函数的正好相反。如果存在虚基类时,在析构函数的调用过程中,同一层对普通基类析构函数的调用总是优先虚基类的析构函数。 4.6.4 虚基类 第4章 继承与组合 * 作业 P144 2 * 通过前面的学习可以发现:3种继承方式中,只有公用继承能够较好的保留基类的特征,它保留了除构造函数、析构函数以外的基类所有成员,基类的公用或保护成员的访问权限在派生类中都按原样保留了下来,在派生类外可以通过派生类对象名调用基类的公用成员函数访问基类的私有成员。因此,公用派生类具有基类的全部功能,所有基类能够实现的功能,公用派生类都能实现。而非公用派生类(私有或保护派生类)不能实现基类的全部功能。因此,基类对象与公用派生类对象之间有赋值兼容关系。 4.7 基类与派生类对象的关系 第4章 继承与组合 * 基类对象与公用派生类对象之间的赋值兼容关系具体表现在以下几个方面: (1)公用派生类对象可以向基类对象赋值 (2)公用派生类对象可以代替基类对象向基类对象的引用进行赋值或初始化 (3)如果函数的参数是基类对象或基类对象的引用,相应的实参可以使用公用派生类对象 (4)公用派生类对象的地址可以赋给指向基类对象的指针变量 4.7 基类与派生类对象的关系 第4章 继承与组合 * (1)公用派生类对象可以向基类对象赋值 Base obj1(12,13); Derived obj2(21,22,23); obj1=obj2; 4.7 基类与派生类对象的关系 第4章 继承与组合 这样的赋值是允许的,在赋值时舍弃派生

文档评论(0)

jz6501 + 关注
内容提供者

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

1亿VIP精品文档

相关文档