第6章運算符重載_第1頁
第6章運算符重載_第2頁
第6章運算符重載_第3頁
第6章運算符重載_第4頁
第6章運算符重載_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第6章 運算符重載6.3 運算符重載的實現(xiàn)運算符重載的實現(xiàn)6.2 運算符重載的規(guī)則運算符重載的規(guī)則6.1 運算符重載概述運算符重載概述6.4 常用運算符的重載常用運算符的重載(1 1)編譯時的多態(tài)性(靜態(tài)多態(tài))編譯時的多態(tài)性(靜態(tài)多態(tài)) 靜態(tài)聯(lián)編(綁定)支持靜態(tài)聯(lián)編(綁定)支持通過函數(shù)的重載和運算符的重載、模板來實現(xiàn)的。通過函數(shù)的重載和運算符的重載、模板來實現(xiàn)的。(2 2)運行時的多態(tài)性)運行時的多態(tài)性( (動態(tài)多態(tài))動態(tài)多態(tài)) 動態(tài)聯(lián)編(綁定動態(tài)聯(lián)編(綁定) ) 支持支持在程序執(zhí)行過程中動態(tài)地確定,通過類繼承關(guān)系和虛函數(shù)在程序執(zhí)行過程中動態(tài)地確定,通過類繼承關(guān)系和虛函數(shù)實現(xiàn)。實現(xiàn)。聯(lián)編是指一

2、個程序模塊、代碼之間互相關(guān)聯(lián)的過程。聯(lián)編是指一個程序模塊、代碼之間互相關(guān)聯(lián)的過程。 運算符重載使得用戶自定義的數(shù)據(jù)以一種更簡潔的方式工作運算符重載使得用戶自定義的數(shù)據(jù)以一種更簡潔的方式工作例如例如int x , y ;y = x + y ; matrix m1 , m2 ,m;/ 矩陣類對象矩陣類對象m = Madd ( m1 , m2 ) ;/ 調(diào)用函數(shù)計算兩個矩陣的和調(diào)用函數(shù)計算兩個矩陣的和complex c1 , c2 ,c; / 復(fù)數(shù)類對象復(fù)數(shù)類對象c = Cadd (c1 , c2 ) ;/ 調(diào)用函數(shù)計算兩個復(fù)數(shù)的和調(diào)用函數(shù)計算兩個復(fù)數(shù)的和能表示為能表示為c= c1 + c2 ; ?

3、能表示為能表示為m = m1 + m2 ; ?6.1 運算符重載概述定義定義運算符重載函數(shù)運算符重載函數(shù) 運算符重載的實質(zhì)運算符重載的實質(zhì)class Complexclass Complex public:public: double real, imag; double real, imag; Complex(double r = 0, double i = 0): real(r), imag(i) Complex(double r = 0, double i = 0): real(r), imag(i) void Show(); void Show(); ;Complex operator

4、 +(Complex com1, Complex com2) Complex operator +(Complex com1, Complex com2) / /重載重載”+”+”相當(dāng)于相當(dāng)于 Add() Add()Complex temp;Complex temp; temp.real=com1.real+com2.real; temp.real=com1.real+com2.real; temp.imag=com1.imag+com2.imag; temp.imag=com1.imag+com2.imag; return temp; return temp; int main()int m

5、ain() Complex com1(1.1,2.2),com2(3.3,4.4),total1,total2; Complex com1(1.1,2.2),com2(3.3,4.4),total1,total2; total1=total1= operator+operator+ (com1,com2);(com1,com2); / /相當(dāng)于相當(dāng)于 調(diào)用調(diào)用 Add() Add() total1.Show(); total1.Show(); total2=total2= com1+com2com1+com2; ; / /相當(dāng)于:相當(dāng)于: operator+ operator+ (com1,c

6、om2)(com1,com2) total2.Show(); total2.Show(); return 0; return 0; 運算符函數(shù)運算符函數(shù)operator+一般函數(shù)一般函數(shù)Add()1 1)把傳統(tǒng)的運算符用于用戶自定義的對象)把傳統(tǒng)的運算符用于用戶自定義的對象2 2)直觀自然,可以提高程序的可讀性)直觀自然,可以提高程序的可讀性3 3)體現(xiàn)了)體現(xiàn)了C+C+的可擴充性的可擴充性4 4)類似于函數(shù)重載,定義運算符重載函數(shù):)類似于函數(shù)重載,定義運算符重載函數(shù): operator operator ()6.2 6.2 運算符重載的規(guī)則運算符重載的規(guī)則5 5) 不能被重載的運算符不能被

7、重載的運算符 運算符運算符運算符名稱運算符名稱禁止重載的理由禁止重載的理由? :三目條件運算符三目條件運算符C+中沒有定義三目運算符的語法中沒有定義三目運算符的語法. . *成員操作符成員操作符成員指針訪問成員指針訪問為保證成員操作符對成員訪問的安全性為保證成員操作符對成員訪問的安全性:作用域操作符作用域操作符該操作符右操作數(shù)不是表達式該操作符右操作數(shù)不是表達式sizeof類型字長操作符類型字長操作符該操作符的操作數(shù)為類型名,不是表達式該操作符的操作數(shù)為類型名,不是表達式6) 重載運算符函數(shù)可以對運算符作出新的解釋,但原有基本語義不變:重載運算符函數(shù)可以對運算符作出新的解釋,但原有基本語義不變

8、:不改變運算符的優(yōu)先級不改變運算符的優(yōu)先級不改變運算符的結(jié)合性不改變運算符的結(jié)合性不改變運算符所需要的操作數(shù)不改變運算符所需要的操作數(shù) 不能創(chuàng)建新的運算符不能創(chuàng)建新的運算符7) 運算符重載函數(shù)的參數(shù)至少應(yīng)有一個是類對象或引用運算符重載函數(shù)的參數(shù)至少應(yīng)有一個是類對象或引用8)用于類對象的運算符必須重載,只有)用于類對象的運算符必須重載,只有“=“可以不重載,可以不重載,但只能實現(xiàn)淺復(fù)制。但只能實現(xiàn)淺復(fù)制。函數(shù)名函數(shù)名 運算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù)運算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) (普通函數(shù)的用法普通函數(shù)的用法 ?)?) 成員函數(shù)的語法形式為:成員函數(shù)的語法形式為:類型類型 類

9、名類名 : ( 參數(shù)表參數(shù)表 ) / 相對于該類定義的操作相對于該類定義的操作6.3.1 6.3.1 運算符重載的語法形式運算符重載的語法形式 一個一個運算符被重載后,原有意義沒有失去,只是定義了相對運算符被重載后,原有意義沒有失去,只是定義了相對一特定類的一個運算符一特定類的一個運算符6.3 運算符重載的實現(xiàn)友元函數(shù)的語法形式:友元函數(shù)的語法形式: friend 類型類型 ( 參數(shù)表參數(shù)表 ) / 相對于該類定義的操作相對于該類定義的操作友元函數(shù)的參數(shù)與運算數(shù)個數(shù)相同,成員函數(shù)的參數(shù)要少一個。友元函數(shù)的參數(shù)與運算數(shù)個數(shù)相同,成員函數(shù)的參數(shù)要少一個。賦值運算符賦值運算符 =需要重載時只能重載為

10、成員函數(shù),且不能繼承。需要重載時只能重載為成員函數(shù),且不能繼承。 運算符函數(shù)可以重載為成員函數(shù)或友員函數(shù)運算符函數(shù)可以重載為成員函數(shù)或友員函數(shù) 關(guān)鍵區(qū)別在于成員函數(shù)具有關(guān)鍵區(qū)別在于成員函數(shù)具有 this 指針,友員函數(shù)沒有指針,友員函數(shù)沒有this指針指針 不管是成員函數(shù)還是友員函數(shù)重載,算符的使用方法相同。但不管是成員函數(shù)還是友員函數(shù)重載,算符的使用方法相同。但 傳遞參數(shù)的方法不同,實現(xiàn)代碼不同,應(yīng)用場合也不同傳遞參數(shù)的方法不同,實現(xiàn)代碼不同,應(yīng)用場合也不同 *用成員或友員函數(shù)重載運算符的不同重載為友員函數(shù),解釋為:重載為友員函數(shù),解釋為:operator op ( ObjectL, Obj

11、ectR ) 左右操作數(shù)都由參數(shù)傳遞左右操作數(shù)都由參數(shù)傳遞重載為成員函數(shù),解釋為:重載為成員函數(shù),解釋為:ObjectL . operator op ( ObjectR )左操作數(shù)由左操作數(shù)由ObjectL通過通過this指針傳遞,右操作數(shù)由參數(shù)指針傳遞,右操作數(shù)由參數(shù)ObjectR傳遞傳遞 6.3.2 重載雙目運算符 二元運算符二元運算符ObjectL op ObjectR/ /定義友元運算符重載函數(shù)定義友元運算符重載函數(shù)class Complexclass Complex double real, imag; double real, imag;public:public: Complex

12、( double r =0, double i =0 ) real = r ; imag = i ; Complex( double r =0, double i =0 ) real = r ; imag = i ; friend Complex operator+ ( const Complex & c1, const Complex & c2 ) ; friend Complex operator+ ( const Complex & c1, const Complex & c2 ) ; /friend Complex operator- ( const C

13、omplex & c1, const Complex & c2 ) ; /friend Complex operator- ( const Complex & c1, const Complex & c2 ) ; ;Complex operator + ( const Complex & c1, const Complex & c2 )Complex operator + ( const Complex & c1, const Complex & c2 ) double r = c1.real + c2.real ; double

14、 r = c1.real + c2.real ; double i = c1.imag + c2.imag; double i = c1.imag + c2.imag; return Complex ( r, i ) ; return Complex ( r, i ) ; int main()int main() Complex c1( 5,-2 ), c2( 4,-3 ) ; Complex c1( 5,-2 ), c2( 4,-3 ) ; Complex c ; Complex c ; c = c1 + c2 ; c = c1 + c2 ;/ operator+(c1,c2)/ opera

15、tor+(c1,c2) c = c1 - c2 ; c = c1 - c2 ;/ operator-(c1,c2)/ operator-(c1,c2) 6.2.2 用友員函數(shù)重載算符Complex operator - ( const Complex & c1, const Complex & c2 )Complex operator - ( const Complex & c1, const Complex & c2 ) double r = c1.real - c2.real ; double r = c1.real - c2.real ; double i

16、 = c1.imag - c2.imag; double i = c1.imag - c2.imag; return Complex ( r, i ) ; return Complex ( r, i ) ; / /建立臨時對象建立臨時對象 實現(xiàn)復(fù)數(shù)運算實現(xiàn)復(fù)數(shù)運算: :算術(shù)運算、關(guān)系運算算術(shù)運算、關(guān)系運算/ / 定義成員運算符重載函數(shù)定義成員運算符重載函數(shù) class Complexclass Complex double real, imag;double real, imag;public:public:Complex(double r = 0, double i = 0): real(r

17、), imag(i)Complex(double r = 0, double i = 0): real(r), imag(i)Complex operator +(Complex &); Complex operator +(Complex &); / /重載重載”+”+” Complex operator + (double d); Complex operator + (double d); / /重載重載”+”+”/Complex operator (Complex &);/Complex operator (Complex &); / /重載減法運算符重

18、載減法運算符”-”-” /Complex operator ( /Complex operator ( ); ); / /重載求負(fù)運算符重載求負(fù)運算符”-”-”; ;實現(xiàn)復(fù)數(shù)運算實現(xiàn)復(fù)數(shù)運算: :算術(shù)運算、關(guān)系運算算術(shù)運算、關(guān)系運算Complex Complex:operator + (Complex &c)Complex Complex:operator + (Complex &c) Complex temp;Complex temp;temp.real = real+c.real;temp.real = real+c.real;temp.imag = imag+c.imag

19、;temp.imag = imag+c.imag;return temp;return temp; int main()Complex c1(3,4) , c2(5,6) ,c3;c1.Show(); c2.Show();c3 = c1+c2; /c3=c1.operator+(c2);c3.Show();c3 = c3+6.5; /c3=c3.operator+(6.5);c3.Show();return 0;Complex Complex:operator + (double d) Complex temp; temp.real = real+d; temp.imag = imag; re

20、turn temp;擴充:擴充:重載關(guān)系運算符重載關(guān)系運算符 =: =: 比較兩個復(fù)數(shù)是否相等比較兩個復(fù)數(shù)是否相等. .返回值為返回值為boolbool類型的類型的truetrue或或falsefalse值。值。課后練習(xí):重載關(guān)系運算符課后練習(xí):重載關(guān)系運算符 str2) coutstr1.disp()“是最大是最大”; else if(str1str2) coutstr2.disp()“是最大是最大”; else if(str1=str2) cout”相等相等”;重載為成員函數(shù),解釋為:重載為成員函數(shù),解釋為:Object . operator op ()操作數(shù)由對象操作數(shù)由對象Object

21、通過通過this指針隱含傳遞指針隱含傳遞重載為友員函數(shù),解釋為:重載為友員函數(shù),解釋為:operator op (Object) 操作數(shù)由參數(shù)表的參數(shù)操作數(shù)由參數(shù)表的參數(shù)Object提供提供 6.2.3 重載單目運算符 一元運算符一元運算符Object op 或 op Object重載重載 + 與與 - 設(shè)A Aobject ;運算符 +和 - - 有兩種方式:1、前置方式:、前置方式: +Aobject -Aobject2、后置方式:、后置方式: Aobject + Aobject -一元 成員函數(shù)成員函數(shù) 重載A A : operator+ () ; 解釋為:Aobject . opera

22、tor +( ) ; 友員函數(shù)友員函數(shù) 重載friend A operator+ (A &) ; 解釋為: operator +( Aobject ) ;二元 成員函數(shù)成員函數(shù) 重載A A : operator+ (int) ; 解釋為: Aobject . operator +( 0 ) ; 友員函數(shù)友員函數(shù) 重載:friend A operator+ (A &, int) ; 解釋為: operator+(Aobject, 0) 偽參數(shù)偽參數(shù)*6.3.1 重載+與-例例 6-4 分析并擴充功能分析并擴充功能 例:重載運算符例:重載運算符”+”、“-”以適應(yīng)對復(fù)數(shù)運算的要求以

23、適應(yīng)對復(fù)數(shù)運算的要求/ 定義成員運算符重載函數(shù)定義成員運算符重載函數(shù) class Complexdouble real, imag;public:Complex(double r = 0, double i = 0): real(r), imag(i) Complex operator + ( ); /重載前置重載前置”+” Complex operator + (int ); /重載后置重載后置”+” Complex operator -( ); Complex operator -(int );6.4.1 6.4.1 重載賦值運算符重載賦值運算符 賦值運算符重載用于對象數(shù)據(jù)的復(fù)制 oper

24、ator= 必須重載為成員函數(shù) 重載函數(shù)原型為:類型類型 & 類名類名 : operator= ( const 類名類名 & ) ; 6.4 6.4 其它運算符的重載其它運算符的重載class STRINGclass STRING public : public : STRING( char STRING( char * *s ) s ) / /構(gòu)造函數(shù)構(gòu)造函數(shù) cout“Constructor called.”endl; cout“Constructor called.”endl; ptr=new charstrlen(s)+1; ptr=new charstrlen(s)+

25、1; strcpy(ptr,s); strcpy(ptr,s); STRING() STRING() cout“Destructor called.-”ptrendl; cout“Destructor called.-”ptrendl; delete ptr; delete ptr; private:private: char char * *ptr ;ptr ; ; ;int main()int main() STRING p1(“book”) ; STRING p1(“book”) ; STRING p2(“jeep”) ; STRING p2(“jeep”) ; p2 = p1 ; p2

26、 = p1 ; / / 調(diào)用調(diào)用默默認(rèn)賦值運算符函數(shù)認(rèn)賦值運算符函數(shù) return 0;return 0; 定義定義STRING類的重載賦值函數(shù)類的重載賦值函數(shù) / / 重載賦值運算符,實現(xiàn)深復(fù)制重載賦值運算符,實現(xiàn)深復(fù)制STRING &operator= (const STRING &s)STRING &operator= (const STRING &s) if (this=&s) return if (this=&s) return * *this;this; delete ptr; delete ptr; ptr=new charstrl

27、en(s.ptr)+1; ptr=new charstrlen(s.ptr)+1; strcpy(ptr,s.ptr); strcpy(ptr,s.ptr); return return * *this;this; 注意:*STRING p3(p1) ; / 調(diào)用復(fù)制構(gòu)造函數(shù)調(diào)用復(fù)制構(gòu)造函數(shù) *p3 = p2 = p1; /連續(xù)賦值,返回類類型連續(xù)賦值,返回類類型 例:例:x=y=1;*只能重載為成員函數(shù),避免只能重載為成員函數(shù),避免: “book” = p1;6.4.2 6.4.2 重載運算符重載運算符和和()() 運算符運算符 和和 () 是二元運算符是二元運算符 和和 () 只能用成員函

28、數(shù)重載,不能用友元函數(shù)重載只能用成員函數(shù)重載,不能用友元函數(shù)重載 1 1重載下標(biāo)算符重載下標(biāo)算符 重載格式重載格式類類 : 類型類型 operator ( 類型類型 ) ; 運算符用于訪問數(shù)據(jù)對象的元素運算符用于訪問數(shù)據(jù)對象的元素*6.3.3 重載運算符和()1 1重載下標(biāo)算符重載下標(biāo)算符 重載格式重載格式類類 : 類型類型 operator ( 類型類型 ) ; 運算符用于訪問數(shù)據(jù)對象的元素運算符用于訪問數(shù)據(jù)對象的元素右操作數(shù)右操作數(shù)為符合原語義,用為符合原語義,用 int*6.3.3 重載運算符和()1 1重載下標(biāo)算符重載下標(biāo)算符 重載格式重載格式類類 : 類型類型 operator()

29、類型類型 ; 運算符用于訪問數(shù)據(jù)對象的元素運算符用于訪問數(shù)據(jù)對象的元素例例 設(shè)設(shè) x 是類是類 X 的一個對象,則表達式的一個對象,則表達式x y 可被解釋為可被解釋為顯式聲明顯式聲明一個參數(shù)一個參數(shù)*6.3.3 重載運算符和()1 1重載下標(biāo)算符重載下標(biāo)算符 class vectorclass vector public : public : vector ( int n ) v = new int n ; size = n ; vector ( int n ) v = new int n ; size = n ; vector ( ) delete v ; size = 0 ; vecto

30、r ( ) delete v ; size = 0 ; int & operator ( int i ) return v i ; int & operator ( int i ) return v i ; private : private : int int * * v ; int size ; v ; int size ; ;int main ( )int main ( ) vector a ( 5 ) ; vector a ( 5 ) ; a 2 = 5 ; a 2 = 5 ; cout a 2 endl ; cout a 2 endl ; *6.3.3 重載運算符和(

31、)1 1重載下標(biāo)算符重載下標(biāo)算符 / / 例例6-76-7class vectorclass vector public : public : vector ( int n ) v = new int n ; size = n ; vector ( int n ) v = new int n ; size = n ; vector ( ) delete v ; size = 0 ; vector ( ) delete v ; size = 0 ; int & operator ( int i ) return v i ; /int & operator ( int i ) re

32、turn v i ; /增加數(shù)組下標(biāo)越界處理增加數(shù)組下標(biāo)越界處理 private : private : int int * * v ; int size ; v ; int size ; ;void main ( )void main ( ) vector vector a a ( 5 ) ;( 5 ) ; a 2 = 5 ; a 2 = 5 ; cout a 2 endl ; cout a 2 vi*6.3.3 重載運算符和() if(i=0)&i=0)&isize) return vi; return vi; cout“The subscript ” cout“The s

33、ubscript ” i“is outsides!n”; i“is outsides!n”; exit(0); exit(0); 2 2重載函數(shù)調(diào)用符重載函數(shù)調(diào)用符 ()() 重載格式類 : 類型 operator() ( 表達式表 ) ;() 運算符用于函數(shù)調(diào)用例例 設(shè) x 是類 X 的一個對象,則表達式x ( arg1, arg2 )可被解釋為x . operator () (arg1, arg2 )*6.3.3 重載運算符和()2 2重載函數(shù)調(diào)用符重載函數(shù)調(diào)用符 ()() /用重載用重載()()算符實現(xiàn)數(shù)學(xué)函數(shù)的抽象算符實現(xiàn)數(shù)學(xué)函數(shù)的抽象#include class F public :

34、 double operator ( ) ( double x , double y ) ; ;double F : operator ( ) ( double x , double y ) return x * x + y * y ; void main ( ) F f ; cout f ( 5.2 , 2.5 ) endl ;*6.3.3 重載運算符和()2 2重載函數(shù)調(diào)用符重載函數(shù)調(diào)用符 ()() /例例6-8 6-8 用重載用重載()()算符實現(xiàn)數(shù)學(xué)函數(shù)的抽象算符實現(xiàn)數(shù)學(xué)函數(shù)的抽象#include class F public : double operator ( ) ( doubl

35、e x , double y ) ; ;double F : operator ( ) ( double x , double y ) return x * x + y * y ; void main ( ) F f ; cout f ( 5.2 , 2.5 ) endl ;f . operator() (5.2, 2.5)*6.3.3 重載運算符和()istream 和 ostream 是 C+ 的預(yù)定義流類cin 是 istream 的對象,cout 是 ostream 的對象運算符 由 istream 重載為提取操作,用于輸入基本類型數(shù)據(jù)程序員重載 ,用于輸出和輸入用戶自定義的數(shù)據(jù)類型

36、預(yù)習(xí):第預(yù)習(xí):第8 8章章 重載流插入和流提取運算符重載流插入和流提取運算符 #include#includeclass vector public : vector( int size =1 ) ; vector() ; int & operator ( int i ) ; friend ostream & operator ( istream & input, vector & ) ; private : int * v ; int len ;void main() int k ; cout k ; vector A( k ) ; cout A ; cout

37、 Output the elements of vector A :n ; cout A ;為為vector類重載流插入運算符和提取運算符類重載流插入運算符和提取運算符 *6.3.4 重載流插入和流提取運算符#include#includeclass vector public : vector( int size =1 ) ; vector() ; int & operator ( int i ) ; friend ostream & operator ( istream & input, vector & ) ; private : int * v ; in

38、t len ;void main() int k ; cout k ; vector A( k ) ; cout A ; cout Output the elements of vector A :n ; cout A ;重載幾個運算符重載幾個運算符*6.3.4 重載流插入和流提取運算符#include#includeclass vector public : vector( int size =1 ) ; vector() ; int & operator ( int i ) ; friend ostream & operator ( istream & input,

39、 vector & ) ; private : int * v ; int len ;void main() int k ; cout k ; vector A( k ) ; cout A ; cout Output the elements of vector A :n ; cout A ;標(biāo)準(zhǔn)流類標(biāo)準(zhǔn)流類*6.3.4 重載流插入和流提取運算符#include#includeclass vector public : vector( int size =1 ) ; vector() ; int & operator ( int i ) ; friend ostream &am

40、p; operator ( istream & input, vector & ) ; private : int * v ; int len ;void main() int k ; cout k ; vector A( k ) ; cout A ; cout Output the elements of vector A :n ; cout A ;使用預(yù)定義版本使用預(yù)定義版本*6.3.4 重載流插入和流提取運算符#include#includeclass vector public : vector( int size =1 ) ; vector() ; int &

41、 operator ( int i ) ; friend ostream & operator ( istream & input, vector & ) ; private : int * v ; int len ;void main() int k ; cout k ; vector A( k ) ; cout A ; cout Output the elements of vector A :n ; cout (A)*6.3.4 重載流插入和流提取運算符#include#includeclass vector public : vector( int size =

42、1 ) ; vector() ; int & operator ( int i ) ; friend ostream & operator ( istream & input, vector & ) ; private : int * v ; int len ;void main() int k ; cout k ; vector A( k ) ; cout A ; cout Output the elements of vector A :n ; cout A ;使用重載版本使用重載版本cout . operator (A)*6.3.4 重載流插入和流提取運算

43、符vector:vector( int size ) if (size 100 ) cout The size of size =0 & i len ) return v i ; cout The subscript i is outside !n ; abort() ;ostream & operator ( ostream & output, vector & ary ) for(int i = 0 ; i ary.len ; i + ) output ary i ; output ( istream & input, vector & ar

44、y ) for( int i = 0 ; i ary i ; return input ;*6.3.4 重載流插入和流提取運算符vector:vector( int size ) if (size 100 ) cout The size of size =0 & i len ) return v i ; cout The subscript i is outside !n ; abort() ;ostream & operator ( ostream & output, vector & ary ) for(int i = 0 ; i ary.len ; i + ) output ary i ; output ( istream & input, vector & ary ) for( int i = 0 ; i ary i ; return input ;使用重載版本使用重載版本訪問對象元素訪問對象元素*6.3.4 重載流插入和流提取運算符vector:vector

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論