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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++运算符重载(成员函数方式)

發(fā)布時(shí)間:2025/3/21 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++运算符重载(成员函数方式) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、運(yùn)算符重載

C++中預(yù)定義的運(yùn)算符的操作對(duì)象只能是基本數(shù)據(jù)類型,實(shí)際上,對(duì)于很多用戶自定義類型,也需要有類似的運(yùn)算操作。如果將C++中這些現(xiàn)存的運(yùn)算符直接作用于用戶自定義的類型數(shù)據(jù)上,會(huì)得到什么樣的結(jié)果呢?編譯器無(wú)法給出正常的結(jié)果,因?yàn)槲覀冃枰\(yùn)算符重載,給運(yùn)算符賦予多重含義,使同一個(gè)運(yùn)算符作用于不同類型的數(shù)據(jù)導(dǎo)致不同類型的行為,增強(qiáng)了運(yùn)算符的普適性。



運(yùn)算符重載的實(shí)質(zhì)是函數(shù)重載。在實(shí)現(xiàn)過(guò)程中,首先把指定的運(yùn)算表達(dá)式轉(zhuǎn)化為對(duì)運(yùn)算符函數(shù)的調(diào)用,運(yùn)算對(duì)象轉(zhuǎn)化為運(yùn)算符函數(shù)的實(shí)參,然后根據(jù)實(shí)參的類型來(lái)確定需要調(diào)用達(dá)標(biāo)函數(shù),這個(gè)過(guò)程在編譯過(guò)程中完成。


運(yùn)算符重載規(guī)則如下:?
①、 C++中的運(yùn)算符除了少數(shù)幾個(gè)之外,全部可以重載,而且只能重載C++中已有的運(yùn)算符。?
②、 重載之后運(yùn)算符的優(yōu)先級(jí)和結(jié)合性都不會(huì)改變。?
③、 運(yùn)算符重載是針對(duì)新類型數(shù)據(jù)的實(shí)際需要,對(duì)原有運(yùn)算符進(jìn)行適當(dāng)?shù)母脑臁R话銇?lái)說(shuō),重載的功能應(yīng)當(dāng)與原有功能相類似,不能改變?cè)\(yùn)算符的操作對(duì)象個(gè)數(shù),同時(shí)至少要有一個(gè)操作對(duì)象是自定義類型。?

C++中只有五個(gè)運(yùn)算符不能被重載,它們是:成員運(yùn)算符“.”指針運(yùn)算符“*”作用域運(yùn)算符“::”“sizeof”條件運(yùn)算符“?:”。?


運(yùn)算符重載形式有兩種,重載為類的成員函數(shù)和重載為類的友元函數(shù)。?

運(yùn)算符重載為類的成員函數(shù)的一般語(yǔ)法形式為:?

函數(shù)類型 operator 運(yùn)算符(形參表) { 函數(shù)體; } 運(yùn)算符重載為類的友元函數(shù)的一般語(yǔ)法形式為:?

friend 函數(shù)類型 operator 運(yùn)算符(形參表) { 函數(shù)體; }
其中,函數(shù)類型就是運(yùn)算結(jié)果類型;operator是定義運(yùn)算符重載函數(shù)的關(guān)鍵字;運(yùn)算符是重載的運(yùn)算符名稱。?
當(dāng)運(yùn)算符重載為類的成員函數(shù)時(shí),函數(shù)的參數(shù)個(gè)數(shù)比原來(lái)的操作個(gè)數(shù)要少一個(gè);當(dāng)重載為類的友元函數(shù)時(shí),參數(shù)個(gè)數(shù)與原操作數(shù)個(gè)數(shù)相同。原因是重載為類的成員函數(shù)時(shí),如果某個(gè)對(duì)象使用重載了的成員函數(shù),自身的數(shù)據(jù)可以直接訪問(wèn),就不需要再放在參數(shù)表中進(jìn)行傳遞,少了的操作數(shù)就是該對(duì)象本身。而重載為友元函數(shù)時(shí),友元函數(shù)對(duì)某個(gè)對(duì)象的數(shù)據(jù)進(jìn)行操作,就必須通過(guò)該對(duì)象的名稱來(lái)進(jìn)行,因此使用到的參數(shù)都要進(jìn)行傳遞,操作數(shù)的個(gè)數(shù)就不會(huì)有變化。?
運(yùn)算符重載的主要優(yōu)點(diǎn)就是允許改變使用于系統(tǒng)內(nèi)部的運(yùn)算符的操作方式,以適應(yīng)用戶自定義類型的類似運(yùn)算。

二、運(yùn)算符重載程序例子(成員函數(shù)方式)

//運(yùn)算符重載:成員函數(shù)方式 #include <iostream> using namespace std;class complex //復(fù)數(shù)類 { public:complex(){ real = imag = 0;}complex(double r, double i){real = r;imag = i;}complex operator + (const complex &c);complex operator - (const complex &c);complex operator * (const complex &c);complex operator / (const complex &c);friend void print(const complex &c); //友元函數(shù)private:double real; //實(shí)部double imag; //虛部};inline complex complex::operator + (const complex &c) //定義為內(nèi)聯(lián)函數(shù),代碼復(fù)制,運(yùn)算效率高 {return complex(real + c.real, imag + c.imag); }inline complex complex::operator - (const complex &c) {return complex(real - c.real, imag - c.imag); }inline complex complex::operator * (const complex &c) {return complex(real * c.real - imag * c.imag, real * c.real + imag * c.imag); }inline complex complex::operator / (const complex &c) {return complex( (real * c.real + imag * c. imag) / (c.real * c.real + c.imag * c.imag), (imag * c.real - real * c.imag) / (c.real * c.real + c.imag * c.imag) ); }void print(const complex &c) {if(c.imag < 0)cout<<c.real<<c.imag<<'i'<<endl;elsecout<<c.real<<'+'<<c.imag<<'i'<<endl; }int main() { complex c1(2.0, 3.5), c2(6.7, 9.8), c3;c3 = c1 + c2;cout<<"c1 + c2 = ";print(c3); //友元函數(shù)不是成員函數(shù),只能采用普通函數(shù)調(diào)用方式,不能通過(guò)類的對(duì)象調(diào)用c3 = c1 - c2;cout<<"c1 - c2 = ";print(c3);c3 = c1 * c2;cout<<"c1 * c2 = ";print(c3);c3 = c1 / c2;cout<<"c1 / c2 = ";print(c3);return 0; }

三、程序運(yùn)行結(jié)果



《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的C++运算符重载(成员函数方式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 777黄色 | 不卡的av| 日韩欧美视频免费在线观看 | 91国偷自产一区二区三区女王 | 91亚洲国产成人精品一区 | 欧美大片免费 | 欧美浓毛大泬视频 | 性xxxx搡xxxxx搡欧美 | 欧美日韩国产一区 | 天天干狠狠干 | 成人激情四射 | 久久最新视频 | 亚洲天堂激情 | 久久久久久久久综合 | 丝袜脚交免费网站xx | 国产农村妇女精品一二区 | 九月婷婷色 | 国产18毛片 | 亚洲 小说区 图片区 都市 | 国产又粗又猛又爽 | 欧洲亚洲精品 | 息与子五十路翔田千里 | av中文网 | 国产在线视频第一页 | 韩国成年人网站 | 日韩视频中文 | 97在线超碰 | jizz91| 久艹av| 尤物精品| 美国成人免费视频 | 中文视频一区二区 | 国产女人毛片 | 日韩中文字幕在线播放 | 香蕉视频91 | 欧美tv | 亚洲一区二区视频在线播放 | 免费毛片网 | 麻豆短视频在线观看 | 黄色麻豆视频 | 国产午夜在线一区二区三区 | 国产群p视频 | 日日噜噜噜夜夜爽爽狠狠 | 亚洲乱视频| 欧美成人免费大片 | 91av影视 | 美女免费网站 | 老司机深夜福利在线观看 | 国产精品传媒视频 | 91中出 | 国产午夜成人久久无码一区二区 | 日本狠狠干| 日韩精品伦理 | 中文字幕精品无码亚 | 91在线观看 | 欧美五月激情 | 国产毛片在线看 | 欧美日韩激情一区 | 欧美男人天堂网 | 国产又粗又猛又爽又黄视频 | h片在线免费 | 亚洲三级黄| 欧美色久 | 亚洲成色在线 | 国产东北露脸精品视频 | 国产精品一二三区 | 这里只有精品视频在线观看 | 国产伦乱 | 片集网| 日本高清在线观看 | 毛片免费一区二区三区 | 草av在线| 国色天香一区二区 | wwwav视频 | 久久精品—区二区三区舞蹈 | 日日夜精品 | 刘亦菲毛片一区二区三区 | 日本www高清 | 国产一级黄色 | 999精品网站 | 97综合| 亚洲激情影院 | 本站只有精品 | 在线观看日本一区 | 国产h在线观看 | 夜夜视频 | 久久久久亚洲av无码专区体验 | 涩涩视频在线免费看 | 免费大片在线观看www | 婷婷色亚洲| 神马午夜视频 | 亚洲日本久久 | 欧美性极品少妇xxxx | 天堂一区 | 毛片网站在线播放 | 精品五月天| 国产福利在线免费观看 | www.色人阁.com | 国产精品999在线观看 |