第8 多态性与虚函数.ppt

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

* * 第8章 多态性与虚函数 本章内容 ? 多态性概述 ? 运算符重载 ? 虚函数及动态多态性 1. 多态性概述 多态性是面向对象程序设计的一个重要特征。 多态性:是指发出同样的消息被不同类型的对象 接收时而导致不同的行为。 多态是指类中具有相似功能的不同函数使用同一个名称。当调用这个相同名称的函数时,可根据需要完成不同的功能. 从实现时机方面讲,多态性可以分为: 静态多态性 动态多态性 ?静态多态性 : 指可在编译期间确定的多态性。 静态多态性: 函数重载 运算符重载 ?动态多态性: 指在程序在运行过程中,才能确定的多 态性。 1. 多态性 静态多态性: 1)函数重载:几个函数具有相同的名字,但函数参数 的个数或类型不同。 重载的函数可以是: 一般函数 类中的成员函数、构造函数 例题:构造函数重载: #include iostream.h class classA { public: classA( ){a1=0;a2=0;cout”default\n”; } classA(int i,int j); void print( ){ couta1”,”a2endl; } ~A( ) { cout”destructure\n”; } private: int a1,a2; }; classA::classA(int i,int j) { a1=i; a2=j; cout”constructure\n”; } void main() { classA ob1,ob2(12,8); ob1.print( ); ob2.print(); } ? #include iostream.h #include string.h class string { public: string(char *pa); void print( ) { coutpstrendl; } void print(char *str) { coutstrendl; } private: char *pstr; }; string::string(char *pa) { pstr=new char[strlen(pa)+1]; strcpy(pstr, pa); } void main( ) { string s1(“programming”); s1.print( ); s1.print(“C++”); } 成员函数重载例题: 运算符重载: 将已有的运算符赋予新的含义。 不可重载的运算符 ? “?” 圆点运算符 ? “?*” 成员指针选择运算符 ? “∷” 域分辨运算符 ? “?:” 条件运算符 ? “sizeof” 长度运算符 除以上五个运算符外,其余运算符均可重载? 2. 运算符重载 重载运算符的规则: ?只能重载C++中已有的可重载的运算符,不能建立新的运算符; ?重载运算符时不能改变原运算符操作数的个数、原有运算符的优先级和结合性,也不能改变原运算符对于内部基本类型对象的含义; ?如果重载了某个运算符(如“=”),并不意味着重载了相关的运算符(如“+=”、“-=”等); 运算符重载: 运算符重载函数的实现: 可以利用: 成员运算符函数 友元运算符函数 学习时注意:不同的实现方法,参数的个数不同。 运算符重载: 用类的成员函数的格式如下: class 类名 { ...... 返回类型 operator 运算符(形参表); ...... }; 运算符重载: 例:利用成员函数实现两个复数相加运算?

文档评论(0)

woai118doc + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档