




已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2020 2 19 1 7 1運(yùn)算符重載規(guī)則7 2用成員或友員函數(shù)重載運(yùn)算符 2020 2 19 2 問題 傳統(tǒng)的預(yù)定義運(yùn)算符只適應(yīng)一般的算術(shù)運(yùn)算 但對(duì)于對(duì)象之間的運(yùn)算 如A B是類Calulator的對(duì)象那么 A B A A 的結(jié)果是什么 這就需要用重載來推廣運(yùn)算符的意義 2020 2 19 3 運(yùn)算符重載使得用戶自定義的數(shù)據(jù)以一種更簡潔的方式工作 例如intx y y x y matrixm1 m2 矩陣類對(duì)象m2 Madd m1 m2 調(diào)用函數(shù)計(jì)算兩個(gè)矩陣的和 complexc1 c2 復(fù)數(shù)類對(duì)象c1 Cadd c1 c2 調(diào)用函數(shù)計(jì)算兩個(gè)復(fù)數(shù)的和 能表示為c1 c1 c2 能表示為m1 m1 m2 第7章運(yùn)算符重載 定義運(yùn)算符重載函數(shù) 2020 2 19 4 7 1運(yùn)算符重載規(guī)則 7 1 1重載運(yùn)算符的限制 可以重載的運(yùn)算符 newdeletenew delete 不能重載的算符 2020 2 19 5 7 1運(yùn)算符重載規(guī)則 7 1 1重載運(yùn)算符的限制 重載運(yùn)算符函數(shù)可以對(duì)運(yùn)算符作出新的解釋 但原有基本語義不變 不改變運(yùn)算符的優(yōu)先級(jí)不改變運(yùn)算符的結(jié)合性不改變運(yùn)算符所需要的操作數(shù)不能創(chuàng)建新的運(yùn)算符 2020 2 19 6 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 2020 2 19 7 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 函數(shù)返回類型 2020 2 19 8 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 重載該運(yùn)算符的類 2020 2 19 9 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 被重載的運(yùn)算符 2020 2 19 10 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 關(guān)鍵字 2020 2 19 11 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 函數(shù)名 2020 2 19 12 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 運(yùn)算符要求的操作數(shù) 2020 2 19 13 7 1 2運(yùn)算符重載的語法形式 運(yùn)算符函數(shù)是一種特殊的成員函數(shù)或友員函數(shù) 語法形式為 類型類名 operatorop 參數(shù)表 相對(duì)于該類定義的操作 一個(gè)運(yùn)算符被重載后 原有意義沒有失去 只是定義了相對(duì)一特定類的一個(gè)新運(yùn)算符 2020 2 19 14 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 6 1 2運(yùn)算符重載的語法形式 2020 2 19 15 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 重載了3個(gè)算符 6 1 2運(yùn)算符重載的語法形式 2020 2 19 16 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 重載了3個(gè)算符 6 1 2運(yùn)算符重載的語法形式 2020 2 19 17 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 voidCalculator operator if value 65535 value else cout nDataoverflow endl abort 6 1 2運(yùn)算符重載的語法形式 2020 2 19 18 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 voidCalculator operator if value 65535 value else cout nDataoverflow endl abort 使用系統(tǒng)預(yù)定義版本 6 1 2運(yùn)算符重載的語法形式 2020 2 19 19 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 voidCalculator operator if value 0 value else cout nDataoverflow endl abort 6 1 2運(yùn)算符重載的語法形式 2020 2 19 20 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 voidCalculator operator if value 0 value else cout nDataoverflow endl abort 使用系統(tǒng)預(yù)定義版本 6 1 2運(yùn)算符重載的語法形式 2020 2 19 21 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter 調(diào)用重載版本 voidoperator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 22 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter voidoperator 調(diào)用重載版本 6 1 2運(yùn)算符重載的語法形式 2020 2 19 23 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 voidoperator 調(diào)用重載版本 Counter operator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 24 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter 調(diào)用重載版本 voidoperator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 25 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter 調(diào)用重載版本 voidoperator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 26 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 調(diào)用重載版本 voidoperator Counter operator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 27 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter 調(diào)用重載版本 voidoperator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 28 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter voidoperator 被重載的運(yùn)算符 6 1 2運(yùn)算符重載的語法形式 2020 2 19 29 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 Counter voidoperator 函數(shù)參數(shù)表 Counter operator 6 1 2運(yùn)算符重載的語法形式 2020 2 19 30 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 6 1 2運(yùn)算符重載的語法形式 2020 2 19 31 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 6 1 2運(yùn)算符重載的語法形式 2020 2 19 32 include includeclassCalculator public Calculator value 0 voidoperator voidoperator unsignedintoperator private unsignedintvalue voidmain CalculatorCounter inti for i 0 i 5 i Counter cout nCounter Counter for i 0 i 5 i Counter cout nCounter Counter voidCalculator operator if value0 value else cout nDataoverflow endl abort unsignedintCalculator operator returnvalue 設(shè)計(jì)一個(gè)安全計(jì)數(shù)器 6 1 2運(yùn)算符重載的語法形式 2020 2 19 33 運(yùn)算符函數(shù)可以重載為成員函數(shù)或友員函數(shù)關(guān)鍵區(qū)別在于成員函數(shù)具有this指針 友員函數(shù)沒有this指針不管是成員函數(shù)還是友員函數(shù)重載 算符的使用方法相同 但傳遞參數(shù)的方法不同 實(shí)現(xiàn)代碼不同 應(yīng)用場合也不同 7 2用成員或友員函數(shù)重載運(yùn)算符 2020 2 19 34 重載為成員函數(shù) 解釋為 Object operatorop 操作數(shù)由對(duì)象Object通過this指針隱含傳遞重載為友員函數(shù) 解釋為 operatorop Object 操作數(shù)由參數(shù)表的參數(shù)Object提供 7 2用成員或友員函數(shù)重載運(yùn)算符 1 一元運(yùn)算符 Objectop或opObject 2020 2 19 35 重載為成員函數(shù) 解釋為 ObjectL operatorop ObjectR 左操作數(shù)由ObjectL通過this指針傳遞 右操作數(shù)由參數(shù)ObjectR傳遞重載為友員函數(shù) 解釋為 operatorop ObjectL ObjectR 左右操作數(shù)都由參數(shù)傳遞 7 2用成員或友員函數(shù)重載運(yùn)算符 2 二元運(yùn)算符 ObjectLopObjectR 2020 2 19 36 當(dāng)一元運(yùn)算符的操作數(shù) 或者二元運(yùn)算符的左操作數(shù)是該類的一個(gè)對(duì)象時(shí) 定義重載算符函數(shù)為成員函數(shù) 7 2 1用成員函數(shù)重載算符 6 2 1用成員函數(shù)重載算符 2020 2 19 37 例建立一個(gè)描述3維坐標(biāo)的類Tri Coordinates 重載算符 和 實(shí)現(xiàn)簡單的算術(shù)運(yùn)算 7 2 1用成員函數(shù)重載算符 6 2 1用成員函數(shù)重載算符 2020 2 19 38 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show 6 2 1用成員函數(shù)重載算符 2020 2 19 39 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator TriCoort TriCoortemp temp x this x t x temp y this y t y temp z this x t z returntemp c a b c a b a operator b Object1 通過匿名對(duì)象Object1返回運(yùn)算結(jié)果 6 2 1用成員函數(shù)重載算符 2020 2 19 40 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator TriCoort TriCoortemp temp x this x t x temp y this y t y temp z this x t z returntemp c a b c a b a operator b Object1 a b cObject1 c Object1 operator c 通過匿名對(duì)象Object2返回運(yùn)算結(jié)果 Object2 6 2 1用成員函數(shù)重載算符 2020 2 19 41 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator TriCoort TriCoortemp temp x this x t x temp y this y t y temp z this x t z returntemp c a b c a b a operator b Object1 a b cObject1 c Object1 operator c Object2 c a b c c Object2 6 2 1用成員函數(shù)重載算符 2020 2 19 42 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator TriCoort this x t x this y t y this z t z return this c b a b a b operate a c b c operate b 返回調(diào)用函數(shù)的對(duì)象 6 2 1用成員函數(shù)重載算符 2020 2 19 43 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator this x this y this z return this b b b operate 沒有參數(shù) 6 2 1用成員函數(shù)重載算符 2020 2 19 44 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator TriCoort x t x y t y z t z return this voidassign intmx intmy intmz x mx y my z mz 它們有何區(qū)別 6 2 1用成員函數(shù)重載算符 2020 2 19 45 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show TriCooroperator TriCoort x t x y t y z t z return this voidassign intmx intmy intmz x mx y my z mz 可以嗎 如何調(diào)用 assign 6 2 1用成員函數(shù)重載算符 2020 2 19 46 前面提到 TriCoor operator TriCoort x t x y t y z t z return this 與voidTriCoor assign intmx intmy intmz x mx y my z mz 有何區(qū)別 t是當(dāng)前指針即this 即t xt yt z是當(dāng)前this分別指向xyz的值 而mxmymz是由成員函數(shù)assign的參數(shù)傳來的值 注意 不能將operator 換成assign 否則調(diào)用不了 2020 2 19 47 includeclassTriCoor public TriCoor intmx 0 intmy 0 intmz 0 x mx y my z mz TriCooroperator TriCoort TriCoortemp temp x x t x temp y y t y temp z z t z returntemp TriCooroperator TriCoort x t x y t y z t z return this TriCooroperator x y z return this voidshow cout x y z n voidassign intmx intmy intmz x mx y my z mz private intx y z 3 dcoordinates voidmain TriCoora 1 2 3 b c a show b show c show for inti 0 i 5 i b b show c assign 3 3 3 c a b c c show c b a c show 6 2 1用成員函數(shù)重載算符 2020 2 19 48 友員函數(shù)重載運(yùn)算符常用于算符的左右操作數(shù)類型不同的情況 7 2 2用友員函數(shù)重載 classComplex intReal intImag public Complex inta Real a Imag 0 Complex inta intb Real a Imag b Complexoperator Complex intf Complexz 2 3 k 3 4 z z 27 z 27 z 例如 6 2 2用友員函數(shù)重載算符 2020 2 19 49 友員函數(shù)重載運(yùn)算符常用于算符的左右操作數(shù)類型不同的情況 7 2 2用友員函數(shù)重載 classComplex intReal intImag public Complex inta Real a Imag 0 Complex inta intb Real a Imag b Complexoperator Complex intf Complexz 2 3 k 3 4 z z 27 z 27 z 例如 z operator 27 6 2 2用友員函數(shù)重載算符 2020 2 19 50 友員函數(shù)重載運(yùn)算符常用于算符的左右操作數(shù)類型不同的情況 7 2 2用友員函數(shù)重載 classComplex intReal intImag public Complex inta Real a Imag 0 Complex inta intb Real a Imag b Complexoperator Complex intf Complexz 2 3 k 3 4 z z 27 z 27 z 例如 z operator 27 調(diào)用構(gòu)造函數(shù)將27轉(zhuǎn)換為Complex類常量 6 2 2用友員函數(shù)重載算符 2020 2 19 51 友員函數(shù)重載運(yùn)算符常用于算符的左右操作數(shù)類型不同的情況 7 2 2用友員函數(shù)重載 classComplex intReal intImag public Complex inta Real a Imag 0 Complex inta intb Real a Imag b Complexoperator Complex intf Complexz 2 3 k 3 4 z z 27 z 27 z 例如 z operator 27 OK 6 2 2用友員函數(shù)重載算符 2020 2 19 52 友員函數(shù)重載運(yùn)算符常用于算符的左右操作數(shù)類型不同的情況 7 2 2用友員函數(shù)重載 classComplex intReal intImag public Complex inta Real a Imag 0 Complex inta intb Real a Imag b Complexoperator Complex intf Complexz 2 3 k 3 4 z z 27 z 27 z 例如 27 operator z NO27不是Complex對(duì)象不能調(diào)用函數(shù) 6 2 2用友員函數(shù)重載算符 2020 2 19 53 友員函數(shù)重載運(yùn)算符常用于算符的左右操作數(shù)類型不同的情況 7 2 2用友員函數(shù)重載 classComplex intReal intImag public Complex inta Real a Imag 0 Complex inta intb Real a Imag b Complexoperator Complex intf Complexz 2 3 k 3 4 z z 27 z 27 z 例如 成員函數(shù)重載的 算符不支持交換律 6 2 2用友員函數(shù)重載算符 2020 2 19 54 7 2 2用友員函數(shù)重載 在第一個(gè)參數(shù)需要隱式轉(zhuǎn)換的情形下 使用友員函數(shù)重載算符是正確的選擇友員函數(shù)沒有this指針 所需操作數(shù)都必須在參數(shù)表顯式聲明 很容易實(shí)現(xiàn)類型的隱式轉(zhuǎn)換C 中不能用友員函數(shù)重載的運(yùn)算符有 6 2 2用友員函數(shù)重載算符 2020 2 19 55 includeclassComplex public Complex doubler 0 doublei 0 Real r Image i Complex inta Real a Image 0 voidprint const friendComplexoperator constComplex 復(fù)數(shù)運(yùn)算 6 2 2用友員函數(shù)重載算符 2020 2 19 56 includeclassComplex public Complex doubler 0 doublei 0 Real r Image i Complex inta Real a Image 0 voidprint const friendComplexope
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六一銷售活動(dòng)方案
- 六味齋營銷活動(dòng)方案
- 六年級(jí)畢業(yè)旅行活動(dòng)方案
- 醫(yī)療文書考試試題及答案
- 安全生產(chǎn)法律法規(guī)試題及答案
- 安全人員考試題庫及答案
- 六月新用戶專享活動(dòng)方案
- 共享亞運(yùn)盛典活動(dòng)方案
- 共享文明實(shí)踐活動(dòng)方案
- 共創(chuàng)團(tuán)隊(duì)活動(dòng)方案
- 門診護(hù)理溝通技巧
- 農(nóng)業(yè)生產(chǎn)應(yīng)急救援方案
- 華為智慧油田解決方案
- 高校新教師科研能力培養(yǎng)方案
- 常見急癥教育課件
- 行測圖形推理1000題庫帶答案
- 老舊小區(qū)路燈改造施工方案
- 《大學(xué)生社交禮儀》課件
- DB11∕T 1772-2020 地源熱泵系統(tǒng)評(píng)價(jià)技術(shù)規(guī)范
- 電瓶車以租代購協(xié)議書范文范本
- 契約戀愛協(xié)議書范本范本電子版
評(píng)論
0/150
提交評(píng)論