- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 ppt课件
第8章 结构、联合和枚举 第9章 类和对象 第10章 构造函数和析构函数 第11章 继承和派生 第12章 类和其他特性 第13章 I/O流类 第14章 文件流和内存流 说明: 如果不说明Y是X的友元类,在类Y中成员函数Out(X r)就错误 如果不说明Y是X的友元类, Cout”X=”r.x’\t’”Y=“yendl;句如何修改? 动用r.GetX() 12.2 虚函数 多态性: 用一个函数实现不同的功能 编译时多态性: 通过函数重载和运算符重载实现 运行时多态性: 通过继承和虚函数实现 12.2.1虚函数 在基类中被说明成virtual 的成员函数, 或该类函数又派生出来的函数 例12-4: #include iostream.h class B { public: virtual void virfunc( ) {coutClass B\n;} }; class D : public B{ public: virtual void virfunc( ) {coutClass D\n;} }; class E: public B { public: virtual void virfunc( ) {coutClass E\n;} }; void main() { B b, *pb; D d; E e; pb=b; pb-virfunc( ); //取B类b对象的地址时,就调用B类中的虚函数 pb=d; pb-virfunc( ); //取D类d对象的地址时,就调用D类中的虚函数 pb=e; pb-virfunc( ); //取E类e对象的地址时,就调用E类中的虚函数 } 程序的输出结果为: Class B Class D Class E 说明: 使用虚函数,可以使用同一个函数名,调用不同类中函数. 此多态性,是运行时的多态性 不用指针,使用对象名也可以调用虚函数 12.3 静态成员 同类对象共享的类成员,称静态成员(同类多个对象,要在内存中占用多片相同的存储区域) 12.3.1 静态数据成员 例12-5: 静态数据成员对输入输出的影响 #include iostream.h class C { private : int d; static int s; //定义静态成员 public: C(int a=0) //定义带参数的构造函数 { d=a; s++; } int GetD( ){return d;} int GetS( ){return s;} void SetD(int a ) {d=a;}; }; int C::s=0; //静态成员属于引用性说明,必须在文件作用域之内说明一次 void main() {C c[5]; //定义5个对象,构造函数将连续执行5次,s的值将连续5次加1 int i; for(i=0;i5;i++) c[i].SetD(i+1); //5个对象占据内存5个连续区域 for(i=0;i5;i++) coutc[i].d=c[i].GetD( )\tc[i].s=c[i].GetS( )endl; coutThere are c[0].GetS( )object created.\n; } 运行结果为: c[0].d=1 c[0].s=5 c[1].d=2 c[1].s=5 c[2].d=3 c[2].s=5 c[3].d=4 c[3].s=5 c[4].d=5 c[4].s=5 There are 5 object created 说明:静态数据成员无论多少对象,只占一个对象的数据成员区域 12.3.2 静态成员函数 例12-6 #include iostream.h class C { private : int d; static int s; public: C(int a=0) {d=a; s++;} static int GetD( Cr){return r.d;} //定义静态成员函数 static int GetS( ){return s;} void SetD(int a=0
您可能关注的文档
最近下载
- 合作协议书(15篇)(模板) .pdf VIP
- 《电动汽车充电站设计规范》GB50966-2014(完整).docx VIP
- 网御星云网闸技术宝典.pdf VIP
- 江淮CPC(D)20-30-CPC(D)30A叉车零件图册.pdf VIP
- DB32T 3610.2-2025 道路运输车辆智能监控系统技术规范 第2部分:终端及测试方法.docx VIP
- 驾驶员的夜间行车视觉与夜间驾驶技巧.pptx VIP
- 中医临床三基(医师)临床基本知识针灸推拿考试真题.docx VIP
- GB50156-2012(2014年版) 汽车加油加气站设计与施工规范.pdf VIP
- 临近既有地铁的异形深基坑支护设计与施工.pdf VIP
- 《葡萄沟》精品课件.pptx VIP
文档评论(0)