ch4继承.pptVIP

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch4继承ppt课件

class B:virtual public A { public: B(int i):A(i){ coutVirtual Bass B...endl; } }; class C:virtual public A{ int x; public: C(int i):A(i){ coutConstructing C...endl; x=i; } }; class ABC:public C, public B { public: ABC(int i,int j,int k):C(i),B(j),A(i) //L1,这里必须对A进行初始化 { coutConstructing ABC...endl; } }; void main(){ ABC obj(1,2,3); } 4.7基类与派生类对象的关系 基类对象与派生类对象之间存在赋值相容性。包括以下几种情况: 把派生类对象赋值给基类对象。 把派生类对象的地址赋值给基类指针。 用派生类对象初始化基类对象的引用。 反之则不行,即不能把基类对象赋值给派生类对象;不能把基类对象的地址赋值给派生类对象的指针;也不能把基类对象作为派生对象的引用。 【例4-19】 把派生类对象赋值给基类对象的例子。 //Eg4-19.cpp #include iostream using namespace std; class A { int a; public: void setA(int x){ a=x; } int getA(){ return a;} }; class B:public A{ int b; public: void setB(int x){ b=x; } int getB(){ return b;} }; void f1(A a, int x){ a.setA(x); } void f2(A *pA, int x){ pA-setA(x); } void f3(A rA, int x){ rA.setA(x); } void main(){ A a1,*pA; B b1,*pB; a1.setA(1); b1.setA(2); a1=b1; couta1.getA()endl; coutb1.getA()endl; a1.setA(10); couta1.getA()endl; coutb1.getA()endl; pA=b1; pA-setA(20); coutpA-getA()endl; coutb1.getA()endl; A ra=b1; ra.setA(30); coutpA-getA()endl; coutb1.getA()endl; b1.setA(7); coutb1.getA()endl; f1(b1,100); coutb1.getA()endl; f2(b1,200); coutb1.getA()endl; f3(b1,300); coutb1.getA()endl; } 4.7基类与派生类对象的关系 说明: ① 不论以哪种方式把派生类对象赋值给基类对象,都只能访问到派生类对象中的基类子对象部份的成员,不能访问派生类的自定义成员。 ②只能把派生类对象赋值给基类对象,不能把基类对象赋值给派生类对象。 4.7基类与派生类对象的关系 4.8继承与组合 继承与组合(也称合成)是C++实现代码重用的两种主要方法。通过继承,派生类可以获得基类的程序代码,从而达到代码重用的目的。而组合则体现了类之间的另一种关系,是指一个类可以包容另外的类,即用其他类来定义它的对象成员。 继承关系常被称为“Is-a”关系,即两个类之间若存在Is-a关系,就可以用继承来实现它。比如,水果和梨,水果和苹果,它们就具有Is-a关系。因为梨是水果,苹果也是水果,所以梨和苹果都可以从水果继承,获得所有水果都具有的通用特征。 组合常用于描述类之间的“Has-a”关系,即一个类拥有另外一些类。比如,图书馆有图书,汽车有发动机、车轮胎、座位等,计算机有CPU、存储器、显示器等,这些

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档