日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

小甲鱼c++学习视频之运算符重载

發布時間:2024/9/21 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小甲鱼c++学习视频之运算符重载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、學習要點:
1.將分數定義為一個類,簡化處理過程,面向對象的思維,不僅有數據,還可以對一個分數進行操作,比如約分操作,加減乘除操作.
2.類的私有成員只能通過成員函數進行訪問.
3.分數的約分過程是分子和分母同時除以分子和分母的最大公約數.求兩個數的最大公約數用的是歐幾里得輾轉相除的原理.
二、實現代碼

#include<iostream> #include<math.h> #include<stdlib.h> using namespace std; class Rational{ public:Rational(int num,int denomi);//構造器Rational operator+(Rational x);//運算符重載函數Rational operator-(Rational x);Rational operator*(Rational x);Rational operator/(Rational x);void print(); private:int numerator;int denominator;void normalize();//歸一化處理,比如將2/16變成1/8; }; Rational::Rational(int num,int denomi){numerator=num;denominator=denomi;normalize(); } void Rational::normalize(){if(denominator<0)//負號放在分母上{numerator=-numerator;denominator=-denominator;}//歐幾里得算法int t;int a=abs(numerator);int b=abs(denominator);if(a>b){t=a%b;while(t){a=b;b=t;t=a%b;}a=b;}else{t=b%a;while(t){b=a;a=t;t=b%a;}}numerator/=a;denominator/=a;} Rational Rational::operator+(Rational x){int a=numerator;int b=denominator;int c=x.numerator;int d=x.denominator;int e=a*d+b*c;int f=b*d;return Rational(e,f); } Rational Rational::operator-(Rational x){int a=numerator;int b=denominator;int c=x.numerator;int d=x.denominator;int e=a*d-b*c;int f=b*d;return Rational(e,f); } Rational Rational::operator*(Rational x){int a=numerator;int b=denominator;int c=x.numerator;int d=x.denominator;int e=a*c;int f=b*d;return Rational(e,f); } Rational Rational::operator/(Rational x){int a=numerator;int b=denominator;int c=x.numerator;int d=x.denominator;int e=a*d;int f=b*c;return Rational(e,f); } void Rational::print(){if(numerator%denominator==0){cout<<numerator/denominator;}else{cout<<numerator<<'/'<<denominator;} } int main() {Rational f1(2,16);Rational f2(7,8);//加的過程Rational resadd=f1+f2;f1.print();cout<<'+';f2.print();cout<<'=';resadd.print();cout<<'\n';//減的過程Rational ressub=f1-f2;f1.print();cout<<'-';f2.print();cout<<'=';ressub.print();cout<<'\n';//乘的過程Rational resmul=f1*f2;f1.print();cout<<'*';f2.print();cout<<'=';resmul.print();cout<<'\n';//除的過程Rational resc=f1/f2;f1.print();cout<<'/';f2.print();cout<<'=';resc.print();cout<<'\n';system("pause");return 0; }

三、運行結果圖如下:

四、如有錯誤,請指教,相互交流學習。

總結

以上是生活随笔為你收集整理的小甲鱼c++学习视频之运算符重载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。