欢迎来到天天文库
浏览记录
ID:58891163
大小:216.50 KB
页数:85页
时间:2020-09-30
《C 第11章运算符重载课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章 运算符重载:字符串和数组对象简介用普通函数重载用友员函数重载用成员函数重载典型的运算符重载输入输出重载实例研究:array类实例研究:string类运算符重载使得系统的内置运算符适用于类的对象之间的操作。提高程序的可读性。问题的提出希望某些运算符能够对整个对象进行操作,而不是C中的简单操作.例如:+运算符能够实现2个对象间的加。类A的对象a1、a2、a3,希望:a3=a1+a2;即:分别把对象a1和a2的各个数据成员值对应相加,然后赋给对象a3。问题的提出把某些事交给系统去做,用户只要知道相加就可提出运算符重载,扩充运算符的功能。即:对运算符进行重载定义,然
2、后使用,由系统自动判断究竟采用哪一个具体的运算符。增强了C++语言的可扩充性。运算符重载的限制不是所有的运算符都能重载重载不能改变运算符的优先级和结合性重载不能改变运算符的操作数个数不能创建新的运算符不能改变用于内部类型对象时的含义用于用户自定义类型对象,或者和内部类型的对象混合使用可以重载的运算符+ - * / % ^ &
3、 ~ ! = < > += -= *= /=
4、 %= ^= &=
5、= << >> >>= <<= == != <= >= &&
6、
7、 ++ -- ->* , -> [] () new delete new[] delete[]. .* :: ?: sizeof不能重载的运算符:运算符重载的实现方法用普通函
8、数实现用成员函数实现用友元函数实现第11章 运算符重载:字符串和数组对象简介用普通函数重载用友员函数重载用成员函数重载典型的运算符重载输入输出重载实例研究:array类实例研究:string类用普通函数实现运算符重载创建运算符函数运算符函数名为:operator后接一个要重载的运算符。如:要重载“+”运算,函数名为operator+。重载“-”运算,函数名为operator-。参数表为要参加运算的对象,返回值为运算结果运算符重载函数实例#includeclasscomplex{public:intr,i;complex(intrr=0,inti
9、i=0){i=ii;r=rr;}};complexoperator+(complexa1,complexa2){complext;t.r=a1.r+a2.r;t.I=a1.i+a2.i;returnt;}voidmain(){complexa1(1,2),a2(3,4),b;b=a1+a2;cout<10、用普通函数重载用友员函数重载用成员函数重载典型的运算符重载输入输出重载实例研究:array类实例研究:string类友元运算符函数把运算符函数定义成某个类的友元函数,称为友元运算符函数。友元函数在类内部的声明friendtypeoperator@(参数表);友元函数的定义:与一般函数相同typeoperator@(参数表){//函数体}双目运算符重载友元运算符函数必须有两个参数例:二元加操作符重载为友元函数#includeclassA{intx,y;public:A(intxx,intyy):x(xx),y(yy){}A(){x=0;y=0;}11、friendAoperator+(constA&a,constA&b);voidshow(){cout<<"x="<cl
10、用普通函数重载用友员函数重载用成员函数重载典型的运算符重载输入输出重载实例研究:array类实例研究:string类友元运算符函数把运算符函数定义成某个类的友元函数,称为友元运算符函数。友元函数在类内部的声明friendtypeoperator@(参数表);友元函数的定义:与一般函数相同typeoperator@(参数表){//函数体}双目运算符重载友元运算符函数必须有两个参数例:二元加操作符重载为友元函数#includeclassA{intx,y;public:A(intxx,intyy):x(xx),y(yy){}A(){x=0;y=0;}
11、friendAoperator+(constA&a,constA&b);voidshow(){cout<<"x="<cl
此文档下载收益归作者所有