[计算机硬件及网络]c++面向对象程序设计教程下

[计算机硬件及网络]c++面向对象程序设计教程下

ID:40004581

大小:2.14 MB

页数:69页

时间:2019-07-17

[计算机硬件及网络]c++面向对象程序设计教程下_第1页
[计算机硬件及网络]c++面向对象程序设计教程下_第2页
[计算机硬件及网络]c++面向对象程序设计教程下_第3页
[计算机硬件及网络]c++面向对象程序设计教程下_第4页
[计算机硬件及网络]c++面向对象程序设计教程下_第5页
资源描述:

《[计算机硬件及网络]c++面向对象程序设计教程下》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇天地之长育学子精英C++面向对象程序设计教程(下)第章多态性Chapter6Polymorphism第章模板Chapter7Template367所谓多态性就是不同对象收到相同的消息时,产生不同的动作。通俗的说,多态性是指用一个名字定义不同的函数,这些函数执行不同但又有类似的操作,即用同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。classpoint{intx,y;public:point(inta,intb){x=a;y=b;}floatarea(){return0.0;}};classcircle:publicpoint{intradius;pub

2、lic:circle(intx,inty,intrad):point(x,y){radius=rad;}floatarea(){return3.141*radius*radius;}};voidmain(){pointp(20,20);circlec(8,8,30);cout<

3、:”加以区分。5.3运算符重载intx,y,z;z=x+y;这是将两个整数相加的方法,非常简单.若有一个复数类complexclasscomplex{public:doublereal;doubleimag;complex(doubler=0,doublei=0){real=r;imag=i;}};把complex的两个对象com1和com2加在一起。能否这样实现:complexcom1(1.1,2.2),com2(3.3,4.4),total1;total1=com1+com2;C++为运算符提供了一种方法,即在进行运算符重载时,必须写一个运算符函数,其名字为oper

4、ator后随一个要重载的运算符。函数功能operator+()加法operator-()减法operator*()乘法operator/()除法operator<()小于……表5.1运算符函数这样,编译器在一个运算符的两边“看”到自定义的数据类型,就执行型用户自己的函数,而不是内部运算符的常规程序.classcomplex{public:doublereal;doubleimag;complex(doubler=0,doublei=0){real=r;imag=i;}};complexoperator+(complexco1,complexco2){complextem

5、p;temp.real=co1.real+co2.real;temp.imag=co1.imag+co2.imag;returntemp;}voidmain(){complexcom1(1.1,2.2),com2(3.3,4.4),total1,total2;total1=operator+(com1,com2);//第一种使用方法cout<

6、而aa和bb是类X的两个对象,则以下两种函数调用方法是等价的。aa@bb//隐式调用operator@(aa,bb)//显示调用注意:(1)重载运算符要与原有功能类似。(2)重载运算符,只能重载已有的运算符.程序员不能臆造新的运算符来扩充C++语言。(3)类属关系运算符“.”、指针运算符“*”、作用域运算符“::”、sizeof运算符不能被重载。(4)不能改变运算符的操作数个数。例如“+”,只能是两个操作数。(5)不能改变运算符原有的优先级。x=y-a*b;例:用*实现两个复数相乘编程练习classcomplex{private:doublereal;doubleima

7、g;public:complex(doubler=0,doublei=0){real=r;imag=i;}};思考:如何实现运算符重载呢?5.3.2友元运算符函数运算符重载函数是在类的外部定义的,这个运算的重载函数只能访问类中的公有数据成员,而不访问类的私有数据成员。解决办法是:(1)定义为它将要操作的类的成员函数(2)是定义类的友元函数。友元运算符函数定义的语法形式:classx{friend返回类型operator运算符(形参表)};classcomplex{private:doublereal;doubleimag;public:c

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

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

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