C++快速入门 第二十五讲:运算符的重载
所谓重载,就是重新赋予新的含义,函数重载是对一个已有的函数赋予新的含义。
运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该运算符。也就是说,运算符重载是通过定义函数实现的,运算符重载实质是是函数的重载。
实例1:复数加法
1 #include <iostream> 2 3 using namespace std; 4 class Cplex//定义基类 5 ; 16 17 Cplex::Cplex()//构造函数实现 18 22 Cplex::Cplex(double r,double i)//重载函数实现 23 27 28 Cplex Cplex::Cplex_add(Cplex &d)//Cplex &d为定义基类对象d(被加数) cplex_add为基类Cplex方法 29 37 void Cplex::print() 38 41 42 int main() 43实例2:复数加法2
1 #include <iostream> 2 3 using namespace std; 4 class Cplex//定义基类 5 ; 16 17 Cplex::Cplex()//构造函数实现 18 22 Cplex::Cplex(double r,double i)//重载函数实现 23 27 //注意:这里作为友元函数,不属于Cplex,记得别写:: 28 Cplex operator+(Cplex &c,Cplex &d)//Cplex &d为定义基类对象d(被加数) cplex_add为基类Cplex方法 29 32 void Cplex::print() 33 36 37 int main() 38作业:分数加减乘除的操作符重载
1 #include <iostream> 2 #include <string> 3 #include <math.h> 4 5 using namespace std; 6 class Rational//定义基类 7 ; 24 25 Rational::Rational(int num,int den)//构造函数实现 26 32 //normalize()对分数进行简化操作包括: 33 //1.只允许分子为负数,如果分母为负数则把负数挪到分子部分,如1/2==1/2 34 //2.利用欧几里德算法(辗转求余原理)将分数进行简化:2/10 => 1/5 35 36 void Rational::normalize() 37 44 //欧几里德算法 45 int a = abs(numerator); 46 int b = abs(deninator); 47 48 //求出最大公约数 49 while(b>0) 50 55 56 //分子、分母分别除以最大公约数得到最简化分数 57 numerator /= a; 58 deninator /= a; 59 } 60 //a c a*d c*b a*d + c*d 61 // + = + = 62 //b d b*d b*d b*d Rational Rational::operator+(Rational rhs)//分数的加运算 64 75 //a c a c 76 // = + 77 //b d b d 78 Rational Rational::operator(Rational rhs)//分数的减运算 79 83 //a c a*c 84 // * = 85 //b d b*d 86 Rational Rational::operator*(Rational rhs)//分数的乘运算 87 98 //a c a d 99 // / = * 100 //b d b c 101 Rational Rational::operator/(Rational rhs)//分数的除运算 102 110 void Rational::print() //打印最简分数 111 117 118 int main() 119C/C++
lbc文件怎么看,lbc文件用什么打开?
lab文件怎么看,lab文件用什么打开?
pim文件怎么看,pim文件用什么打开?
pip文件怎么看,pip文件用什么打开?
pig文件怎么看,pig文件用什么打开?
pid文件怎么看,pid文件用什么打开?
pie文件怎么看,pie文件用什么打开?
0文件怎么看,0文件用什么打开?
picnc文件怎么看,picnc文件用什么打开?
pict文件怎么看,pict文件用什么打开?