《C++程序设计》 周强 教学课件 pp9.pptVIP

《C++程序设计》 周强 教学课件 pp9.ppt

  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多
9.1 多态性与虚函数简介 9.1 多态性与虚函数简介 9.2 重载 9.2.2 运算符重载 9.2.2 运算符重载 9.2.2 运算符重载 9.2.2 运算符重载 9.3 虚函数 9.3.2 虚函数都定义和使用 9.3.2 虚函数都定义和使用 9.3.3 虚析构函数 9.3.3 虚析构函数 P o w e r B a r 中国专业PPT设计交流论坛 目录 1.了解C++语言中的多态性 2.熟练使用函数重载技术 3.了解运算符重载技术 4.了解虚函数使用方法 多态性与虚函数 多态性与虚函数 1. 掌握利用成员函数和友元函数实现运算符重载的方法 2.掌握利用成员函数及虚构函数的使用 所谓多态性,指的是当类的不同实例接受到相同的消息时,产生完全不同的行为的一种现象。而面向对象理论中的消息可以理解为程序对类的成员函数的调用。 多态性是面向对象的核心,它的最主要的思想就是可以采用多种形式,通过一个用户名字或者用户接口完成不同的实现。通常多态性被简单的描述为“一个接口,多个实现”。实现多态性的最简单的方法是函数重载,此外,用户也可以通过虚函数的调用来实现多态性。但是,虚函数通常是在继承模式下才使用的。 在C++语言中,有两种类型的多态性,分别是静态多态性与动态多态性。 实现多态性 的方法 重载多态性 包含多态性 模板多态性 9.2.1 函数重载 函数重载是指同一个函数名可以对应着多个函数的实现,简单的说就是在程序中允许出现同名的函数。 函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个函数实现。因此,当确定函数实现时,要求函数参数的个数和类型上不能完全相同。也就是说,进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。否则,将无法实现重载。 运算符重载原理 运算符重载是对已有运算符赋予多重含义,这在程序设计过程中是十分重要与必要的。在C++语言中,预先定义的运算符其运算对象只能是基本数据类型,而不能用于用户定义的类型,如类实例。而在程序设计中,为了使得程序编写更加简洁,用户希望能使用运算符来操作类实例,因此产生了运算符重载模式。运算符重载的过程是将特定的运算表达式转换为对实现运算符功能的函数调用,而运算对象则转换为运算符函数的参数。 单目运算符通常重载为成员函数 运算符重载模式 复合运算符,如+=,-=,*=,/=,!=,%=,=,=,=,~=等,通常重载为成员函数。 特殊运算符,如=,(),[],→,new,delete,sizeof等只能重载为成员函数。 其他运算符建议转换为友元函数。 利用成员函数重载运算符 在C++语言,当用户使用成员函数模式来重载运算符时,则需要在类的声明模块中应采用以下方式来重载运算符号: 返回值类型 operator 运算符号(参数表); 利用友元函数重载运算符 在C++应用程序中,用户可以采用下面的方式来实现友元函数重载运算符。用户需要在类声明模块中进行下列说明。 friend 返回值类型 operator 重载运算符(参数表); 当友元函数重载运算符声明完毕后,用户可以在程序其他位置加入友元函数重载运算符的代码,即函数体,其模式如下。 返回值类型 operator 重载运算符(参数表) { // 函数体; } 9.3.1 虚函数介绍 虚函数是类的成员函数,当一个成员函数被声明或定义为虚函数后,则在该类的派生类中,可以有多个对这个函数的不同实现方式。而对于用户而言,只能使用指针或引用的方式来调用虚函数。 虚函数可以在派生出的子类中有多个不同实现是虚函数的重要特性,也就是通过这个特性,用户可以实现多态性。由此,可以得知,虚函数都是在父类中进行声明或定义的,而用户声明或定义虚函数的目的就是不确定该成员函数在派生出的子类中的行为。 可以使用如下方式来声明或定义一个虚函数。 virtual 函数类型 函数名称(参数表); 或者 virtual 函数类型 函数名称(参数表) { //函数体; } 使用虚函数应遵循的原则 (1)只有在继承与派生模式下才有虚函数; (2)若基类中有一个虚函数,则由该基类派生出的所有子类中,与该虚函数同名,同返回类型,同参数表的函数都是虚函数,无论是否使用virtual关键字说明; (3)只有类的成员函数才能声明为虚函数,但是构造函数、静态函数与内联函数不能声明为虚函数;

文档评论(0)

一帆风顺 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档