C++程序设计基础杨长兴 第9章 多态性和虚函数

C++程序设计基础杨长兴 第9章 多态性和虚函数

ID:40238265

大小:632.00 KB

页数:51页

时间:2019-07-28

C++程序设计基础杨长兴 第9章 多态性和虚函数_第1页
C++程序设计基础杨长兴 第9章 多态性和虚函数_第2页
C++程序设计基础杨长兴 第9章 多态性和虚函数_第3页
C++程序设计基础杨长兴 第9章 多态性和虚函数_第4页
C++程序设计基础杨长兴 第9章 多态性和虚函数_第5页
资源描述:

《C++程序设计基础杨长兴 第9章 多态性和虚函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计基础主编杨长兴中国水利水电出版社第9章多态性与虚函数9.1函数重载函数重载简单说就是在同一作用域内赋给同一个函数名多个不同的含义,即同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数体,这些函数的名字相同,但是函数参数的类型不同。【例9.1】实现一个打印函数print,既可以打印整型也可以打印字符串型数据。//*****ex9_1.cpp*****#include#includeusingnamespacestd;voidprint(inti){cout<<”Printaninteger:”<

2、trings){cout<<”Printastring:”<

3、ubleoperator+(double,double);charoperator+(char,char);Complexoperator+(Complex&c);2.二元运算符重载为类的成员函数运算符函数如果重载为类的成员函数,它就可以自由地访问本类的数据成员。二元运算符重载为类的成员函数一般定义格式为:<类型><类名>::<重载运算符>(形参表){函数体}【例9.2】定义一个复数类,重载“=”运算符,使该运算符能直接完成复数赋值运算。程序代码如下://*****ex9_2.cpp*****#includeusingnamespacestd;class

4、Complex{private:floatReal,Image;public:Complex(floatre=0,floatim=0){Real=re;Image=im;}//缺省构造函数voidShow(inti)//显示输出复数{cout<<"c"<

5、对于运算符重载,必须注意以下几点:(1)运算符重载函数名必须为:operator<运算符>(2)运算符的重载是通过调用运算符重载函数实现的,调用函数时,左操作数为调用重载函数的对象,右操作数作为函数的实参,实参应该与运算符重载函数的形参类型一致。(3)形参说明若重载函数为成员函数,则参加二元运算的左操作数为调用重载函数的对象。因此,重载函数为成员函数的参数通常为一个,即右操作数。如在上例中,二元加法运算:c1+c2被解释为对重载成员函数c1.operator+(c2)的调用,此时重载函数只有一个参数。(4)运算符重载函数的返回类型若二个同类对象进行二元运算后的结果类型仍为原类型,则运算符重载函

6、数的返回类型应为原类型。如在例9.3中,由于两个复数运算的结果仍为复数,因此上述运算符重载函数的返回类型为复数类型Complex。3.一元运算符重载为类的成员函数一元运算符重载为类的成员函数的格式:<类型><类名>::operator<一元运算符>(形参){函数体}在C++中,常见的一元运算符有自增“++”、自减“--”,这两个运算符既可前置,又可后置,两者在重载时稍有差异。以“++”为例。“++”为前置运算符时,函数格式为:<类型><类名>::operator++(){函数体}“++”为后置运算符时,函数格式为<类型><类名>::operator++(int){函数体}【例9.4】定义一个描

7、述计时器的类,其三个数据成员分别用于存放时、分和秒。用成员函数重载“++”运算符,实现计时器对象的加1运算。程序代码如下://*****ex9_4.cpp*****#includeusingnamespacestd;classTCount{private:intHour,Minute,Second;public:TCount(inth=0,intm=0,ints=0)//定义缺

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。