亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

操作重載

2019-11-14 09:53:53
字體:
來源:轉載
供稿:網友

重載的運算符是具有特殊名字的函數。它們的名字由關鍵字Operator和其后要定義的運算符號共同組成。當一個重載的運算符是成員函數時,this綁定到左側運算對象。成員運算符函數的參數數量比運算對象少一個。 不能被重載的運算符有(::) (.* )(. )(?:) 不應該被重載的運算符: 邏輯運算符,逗號運算符,取地址運算符


選做成員函數的運算符: =,[ ],( ), ->, 符合賦值+=,-=.. , ++,–,*(解引用) 改變對象的狀態或與給定類型密切相關的運算符


選做非成員函數的運算符: 算數+,-,*,/… 相等性== ,!= 關系 >,<,>=,<=.. 位運算符 ^, |, &


重載輸入和輸出運算符: 必須為非成員函數,輸出運算符應該主要負責打印對象的內容而非控制格式,輸出運算符不應該打印換行符。輸入運算符必須處理輸入可能失敗的情況,而輸出運算符不需要。

#include <string>class A{ friend std::ostream& operator<<(std::ostream& os,const A &a); friend std::istream& operator>>(std::istream& is,A &a);public: A(int a=10,std::string s="initial"):value(a),s(s){}PRivate: int value; std::string s;};std::ostream& operator<<(std::ostream& os,const A &a){ os<<a.value<<a.s; return os;}std::istream& operator>>(std::istream& is,A &a){ is>>a.value>>a.s; if(!is) { a=A(); std::cerr<<"invalid input!/n"; } return is; }int main(){ A a; std::cin>>a; std::cout<<a<<std::endl; return 0;}

重載相等與不相等運算符: 非成員函數,需具有傳遞性,定義了其中一個一般需要定義另一個,而通常運算符的一個應該把工作委托給另一個。

#include <iostream>#include <string>class A{ friend bool operator==(const A& a1,const A &a2); friend bool operator!=(const A& a1,const A &a2);public: A(int a=10,std::string s="initial"):value(a),s(s){}private: int value; std::string s;};bool operator==(const A& a1,const A &a2){ return a1.value==a2.value&&a1.s==a2.s;}bool operator!=(const A& a1,const A &a2){ return !(a1==a2);}int main(){ A a1,a2(11,"apple"),a3; std::cout<<(a1==a2)<<std::endl; std::cout<<(a1==a3)<<std::endl; std::cout<<(a1!=a2)<<std::endl; std::cout<<(a1!=a3)<<std::endl; return 0;}

重載下標運算符: 成員函數,如果一個類包含下標運算符,則它通常會定義兩個版本,一個返回普通引用,另一個類返回常量引用。

#include <iostream>#include <string>class A{public: A():value(new int[8]){} int& operator[](std::size_t n){return value[n];} const int &operator[](std::size_t n)const {return value[n];}private: int *value;};int main(){ A a; a[5]=8; std::cout<<a[5]<<std::endl; const A a1; //a1[2]=1;//錯誤 return 0;}

重載遞增和遞減運算符: 成員函數,有前置和后置版本,前置返回引用,后置返回值。

#include <iostream>class A{ friend std::ostream& operator<<(std::ostream& os,const A &a);public: A(int a=0):value(a){}; A & operator++(){ value++; return *this; }//前置版本++ A operator++(int){ int tmp=value; value++; return *this; }//后置版本++ A &operator--(){ value--; return *this; }//前置版本-- A operator--(int){ int tmp=value; value--; return *this; }//后置版本--private: int value;};std::ostream& operator<<(std::ostream& os,const A &a){ os<<a.value; return os;}int main(){ A a(8); ++a; std::cout<<a<<std::endl;//9 --a; std::cout<<a<<std::endl;//8 a.operator++(); std::cout<<a<<std::endl;//9 a.operator--(); std::cout<<a<<std::endl;//8 return 0;}

重載成員訪問運算符,即*和-> 成員函數(不總是),*返回對象的引用,->返回對象的地址。

#include <iostream>class A{public: A(int a=0):value(a){}; A & operator++(){ value++; return *this; }//前置版本++ A operator++(int){ int tmp=value; value++; return *this; }//后置版本++ A &operator--(){ value--; return *this; }//前置版本-- A operator--(int){ int tmp=value; value--; return *this; }//后置版本-- int value;};class A_ptr{public: A_ptr(A &a):a_ptr(&a){}; A &operator*() const{return *a_ptr;} A *operator->() const {return a_ptr;} A *a_ptr;};int main(){ A a(8); A_ptr ap(a); std::cout<<ap->value<<std::endl;//8 ap->operator++(); //++a std::cout<<ap->value<<std::endl;//9 std::cout<<(*ap).value<<std::endl;//9}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲日本欧美中文幕| 欧美在线视频播放| 中文字幕亚洲天堂| 亚洲精品videossex少妇| 国产成人在线精品| 亚洲午夜色婷婷在线| 中文字幕精品一区久久久久| 欧美另类暴力丝袜| 日韩在线观看免费网站| 亚洲激情视频在线播放| 亚洲色无码播放| 日韩成人小视频| 亚洲天堂精品在线| 日韩欧美在线视频观看| 国产成人亚洲综合青青| 91中文字幕在线| 国产欧美精品久久久| 久久九九免费视频| 51精品国产黑色丝袜高跟鞋| 久久亚洲私人国产精品va| 日韩中文字幕在线看| 欧美在线视频观看免费网站| 亚洲成人av中文字幕| 欧美日韩精品二区| 国产性色av一区二区| 91亚洲国产成人久久精品网站| 日本最新高清不卡中文字幕| 亚洲成人av在线| 精品中文字幕久久久久久| 亚洲成人av片在线观看| 欧美精品激情blacked18| 久精品免费视频| 亚洲欧洲午夜一线一品| 亚洲日韩欧美视频一区| 在线观看成人黄色| 国产日韩精品综合网站| 欧美黑人巨大精品一区二区| 性欧美长视频免费观看不卡| 久久综合国产精品台湾中文娱乐网| 亚洲xxxx做受欧美| 日本19禁啪啪免费观看www| 成人亚洲综合色就1024| 欧美激情综合色综合啪啪五月| 欧美激情视频一区| 欧美激情国产日韩精品一区18| 欧美肥婆姓交大片| 欧美视频在线视频| 欧美午夜视频在线观看| 国产97在线|日韩| 91精品国产91久久久久福利| 91九色精品视频| 国产精品美女免费视频| 国语自产精品视频在线看抢先版图片| 亚洲第一色在线| 日韩男女性生活视频| 欧美性xxxx极品高清hd直播| 91视频九色网站| 成人黄在线观看| 亚洲第一区在线| 欧美性猛交xxxx富婆弯腰| 亚洲高清久久网| 欧美色视频日本高清在线观看| 久久免费视频这里只有精品| 日韩欧美成人精品| 亚洲一区中文字幕在线观看| 日韩中文字幕视频在线观看| 亚洲成年人在线| 日韩av一区二区在线| 久久久久国产视频| 亚洲激情国产精品| 亚洲福利视频专区| 国产中文字幕日韩| 成人免费在线网址| 国产国语刺激对白av不卡| 亚洲v日韩v综合v精品v| 亚洲精品久久久久中文字幕二区| 最新国产精品亚洲| 欧美视频裸体精品| 97精品国产aⅴ7777| 精品香蕉在线观看视频一| 中文字幕在线看视频国产欧美| 92看片淫黄大片看国产片| 欧美亚洲激情在线| 日韩有码在线播放| 亚洲qvod图片区电影| 国产欧美日韩91| 欧美成年人网站| 亚洲精品美女久久久久| 热99精品里视频精品| 亚洲欧美激情精品一区二区| 久久久久久午夜| 国产免费一区二区三区在线能观看| 国产精品午夜国产小视频| 成人福利网站在线观看11| 91色视频在线观看| …久久精品99久久香蕉国产| 日韩一区二区福利| 日韩在线视频免费观看高清中文| 精品人伦一区二区三区蜜桃网站| 97精品一区二区视频在线观看| 91在线观看免费观看| 日韩美女激情视频| www.欧美免费| 国产a∨精品一区二区三区不卡| 欧美日韩国产限制| 欧美裸体男粗大视频在线观看| 2019中文在线观看| 色青青草原桃花久久综合| 色偷偷噜噜噜亚洲男人| 国产亚洲精品一区二区| 国产日韩在线播放| 亚洲一区中文字幕在线观看| 国产成人极品视频| 国产精品自拍偷拍| 成人免费在线网址| 九九热这里只有精品免费看| 久久在线精品视频| 亚洲成成品网站| 91国产精品电影| 性欧美办公室18xxxxhd| 久久香蕉国产线看观看av| 成人激情视频免费在线| 伊人男人综合视频网| 亚洲第一区第一页| 欧美亚洲一区在线| 91地址最新发布| 奇米成人av国产一区二区三区| 国产精品777| 亚洲国产精品系列| 少妇高潮久久77777| 国产精品亚洲片夜色在线| 美女性感视频久久久| 精品久久久久久国产91| 草民午夜欧美限制a级福利片| 91亚洲国产成人精品性色| 国产mv免费观看入口亚洲| 国产91精品久久久久久久| 精品成人在线视频| 国产一区二区三区视频免费| 亚洲永久免费观看| 亚洲国产古装精品网站| 欧美孕妇性xx| 久久久久久久激情视频| 在线观看中文字幕亚洲| 国产精品爽爽爽| 国内精品久久久久| 成人写真视频福利网| 青青在线视频一区二区三区| 成人性生交大片免费观看嘿嘿视频| 黄色精品在线看| 欧美一级bbbbb性bbbb喷潮片| 久久久国产精品一区| 中文字幕一区二区精品| 黄色一区二区三区| 欧美精品生活片| 国产成人亚洲精品| 成人信息集中地欧美| 欧美日韩亚洲系列| 日日噜噜噜夜夜爽亚洲精品| 91亚洲精华国产精华| 亚洲欧美制服另类日韩| 欧美特黄级在线| 欧美另类极品videosbest最新版本| 欧美日韩一区二区精品|