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

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

操作重載

2019-11-14 10:45:27
字體:
來源:轉載
供稿:網友

重載的運算符是具有特殊名字的函數。它們的名字由關鍵字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
亚洲黄一区二区| 国产精品久久一区主播| 亚洲国产一区二区三区四区| 国产成人激情小视频| 欧美最猛黑人xxxx黑人猛叫黄| 日韩欧美福利视频| 超碰91人人草人人干| 欧美激情一级二级| 午夜精品久久久久久久男人的天堂| 日韩av综合网站| 91国内产香蕉| 91精品国产高清久久久久久| 久久久久久久久亚洲| 美女性感视频久久久| 国产精品va在线播放| 国产精品中文久久久久久久| 国产精品爱啪在线线免费观看| 亚洲精品免费在线视频| 国产精品久久久久久久电影| 欧美日韩免费看| 国内精品一区二区三区四区| 国产免费一区二区三区在线观看| 最新91在线视频| 91丝袜美腿美女视频网站| 久久精品国产精品亚洲| 久久精品99久久久香蕉| 7777精品久久久久久| 亚洲精品www久久久| 欧美成人午夜免费视在线看片| 国外成人性视频| 久久中文字幕在线| 日韩美女av在线| 亚洲精品电影在线观看| 国产精品一区二区久久精品| 日韩免费高清在线观看| 亚洲精品视频播放| 91国语精品自产拍在线观看性色| 久久精品亚洲精品| 欧美精品在线第一页| 国产z一区二区三区| 久久精品一区中文字幕| 中文字幕亚洲欧美| 动漫精品一区二区| 成人妇女淫片aaaa视频| 久久亚洲国产成人| 国产精品第3页| 亚洲精品xxx| 成人黄色短视频在线观看| 国产精品成人一区二区三区吃奶| 精品av在线播放| 538国产精品视频一区二区| 亚洲国产成人精品久久久国产成人一区| 国产高清在线不卡| 中文字幕亚洲在线| 一区二区成人精品| 亚洲视频axxx| 日韩高清av一区二区三区| 精品国产91久久久久久老师| 亚洲a在线观看| 欧美精品少妇videofree| 国产精品成人免费电影| 国产精品亚洲欧美导航| 亚洲成人av在线| 亚洲综合大片69999| 91夜夜未满十八勿入爽爽影院| 国产精品爽爽ⅴa在线观看| 国产精品91久久久久久| 欧美日韩国产麻豆| 亚洲第一区在线| 国产suv精品一区二区| 欧美老少做受xxxx高潮| 国产一区二区视频在线观看| 欧美精品国产精品日韩精品| 日韩av综合网站| 亚洲国产精品久久久久秋霞蜜臀| 成人av色在线观看| 一区二区三区 在线观看视| 亚洲第一天堂av| 欧美人与物videos| 欧美另类69精品久久久久9999| 欧美xxxwww| 久久综合五月天| 欧美国产中文字幕| 视频在线观看99| 欧美色另类天堂2015| 国产精品久久在线观看| 亚洲的天堂在线中文字幕| 亚洲国产精品系列| 最近中文字幕mv在线一区二区三区四区| 国内免费久久久久久久久久久| 国产精品丝袜久久久久久高清| 国产精品黄色av| 亚洲欧美国产另类| 亚洲性猛交xxxxwww| 精品高清一区二区三区| 亚洲第一区在线观看| 精品网站999www| 中文字幕精品一区二区精品| 欧亚精品在线观看| 亚洲第一网站免费视频| 中文字幕av一区二区三区谷原希美| 亚洲在线免费视频| 欧美性资源免费| 91色中文字幕| xxx成人少妇69| 国产91精品最新在线播放| 亚洲人成电影在线观看天堂色| 亚洲日本成人网| 亚洲女人天堂成人av在线| 欧美日韩亚洲系列| 欧美三级xxx| 少妇激情综合网| 午夜免费在线观看精品视频| 日韩av网址在线| 久久久久亚洲精品成人网小说| 欧美肥婆姓交大片| 日韩av一区二区在线观看| 日韩av在线播放资源| 国内精品一区二区三区| 国语自产精品视频在线看抢先版图片| 亚洲人精选亚洲人成在线| 亚洲视频免费一区| 日韩h在线观看| 91在线观看免费高清完整版在线观看| 亚洲精品色婷婷福利天堂| 欧美另类69精品久久久久9999| 亚洲精品av在线| 秋霞午夜一区二区| 欧美精品videosex性欧美| 日韩av在线最新| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久精品国产91精品亚洲| 羞羞色国产精品| 欧美寡妇偷汉性猛交| 国产精品国内视频| 欧美中文字幕在线| 久久伊人精品一区二区三区| 欧美在线视频在线播放完整版免费观看| 青青草原一区二区| 亚洲电影免费观看高清| 国产不卡精品视男人的天堂| 26uuu亚洲伊人春色| 自拍偷拍亚洲精品| 日韩在线视频一区| 最新国产成人av网站网址麻豆| 国产亚洲精品91在线| 国产精品青草久久久久福利99| 成人欧美一区二区三区黑人孕妇| 亚洲综合在线做性| 欧美性xxxx在线播放| 不卡在线观看电视剧完整版| 亚洲欧美中文另类| 日韩免费观看在线观看| 久久伊人91精品综合网站| 久久影院资源网| 久久九九有精品国产23| 91欧美精品成人综合在线观看| 91九色国产社区在线观看| 久久99国产精品久久久久久久久| 色偷偷888欧美精品久久久| 91色精品视频在线| 国产精品视频久| 亚洲免费视频观看| 色偷偷88888欧美精品久久久|