freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第八章多態(tài)性(編輯修改稿)

2024-08-28 13:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 以給一個(gè)變量名,也可以不給變量名。 //其它成員函數(shù)的實(shí)現(xiàn)略 int main() { Clock myClock(23,59,59)。 coutFirst time output:。 ()。 coutShow myClock++:。 (myClock++).ShowTime()。 coutShow ++myClock:。 (++myClock).ShowTime()。 } 28 程序運(yùn)行結(jié)果為: First time output: 23:59:59 Show myClock++: 23:59:59 Show ++myClock: 0:0:1 29 C++語(yǔ)言程序設(shè)計(jì) 30 小結(jié): 1. 運(yùn)算符重載函數(shù)的函數(shù)名必須為關(guān)鍵字 Operator加一個(gè)合法的運(yùn)算符。在調(diào)用該函數(shù)時(shí),將右操作數(shù)作為函數(shù)的實(shí)參。 2. 當(dāng)用類(lèi)的成員函數(shù)實(shí)現(xiàn)運(yùn)算符的重載時(shí) , 運(yùn)算符重載函數(shù)的參數(shù) ( 當(dāng)為雙目運(yùn)算符時(shí) ) 為一個(gè)或 ( 當(dāng)為單目運(yùn)算符時(shí) ) 沒(méi)有 。 運(yùn)算符的左操作數(shù)一定是對(duì)象 , 因?yàn)橹剌d的運(yùn)算符是該對(duì)象的成員函數(shù) , 而右操作數(shù)是該函數(shù)的參數(shù) , 其類(lèi)型并無(wú)嚴(yán)格限制 。 C++不允許重載三目運(yùn)算符 。 C++語(yǔ)言程序設(shè)計(jì) 31 3. 單目運(yùn)算符“ ++”和“ ”存在前置與后置問(wèn)題。前置“ ++”格式為: 返回類(lèi)型 類(lèi)名 ::operator++(){……} 而后置“ ++”格式為: 返回類(lèi)型 類(lèi)名 ::operator++(int){……} 后置“ ++”中的參數(shù) int僅用作 區(qū)分 ,并無(wú)實(shí)際意義,可以給一個(gè)變量名,也可以不給變量名。 4. C++中只有極少數(shù)的運(yùn)算符不允許重載,表 。 C++語(yǔ)言程序設(shè)計(jì) 32 非成員運(yùn)算符函數(shù)的設(shè)計(jì) ? 如果需要重載一個(gè)運(yùn)算符,使之能夠用于操作某類(lèi)對(duì)象的私有成員,可以此將運(yùn)算符重載為該類(lèi)的非成員(通常為友元)函數(shù)。 ? 函數(shù)的形參代表依自左至右次序排列的各操作數(shù)。 ? 后置單目運(yùn)算符 ++和 的重載函數(shù),形參列表中要增加一個(gè) int,但不必寫(xiě)形參名。 運(yùn)算符重載 C++語(yǔ)言程序設(shè)計(jì) 33 非成員運(yùn)算符函數(shù)的設(shè)計(jì) ? 雙目運(yùn)算符 B重載后, 表達(dá)式 oprd1 B oprd2 等同于 operator B(oprd1,oprd2 ) ? 前置單目運(yùn)算符 B重載后, 表達(dá)式 B oprd 等同于 operator B(oprd ) ? 后置單目運(yùn)算符 ++和 重載后, 表達(dá)式 oprd B 等同于 operator B(oprd,0 ) 運(yùn)算符重載 C++語(yǔ)言程序設(shè)計(jì) 34 例 83 ? 將 +、 (雙目)重載為復(fù)數(shù)類(lèi)的友元函數(shù)。 ? 兩個(gè)操作數(shù)都是復(fù)數(shù)類(lèi)的對(duì)象。 運(yùn)算符重載 includeiostream using namespace std。 class plex //復(fù)數(shù)類(lèi)聲明 { public: //外部接口 plex(double r=,double i=) { real=r。 imag=i。 } //構(gòu)造函數(shù) friend plex operator + (plex c1,plex c2)。 //運(yùn)算符 +重載為友元函數(shù) friend plex operator (plex c1,plex c2)。 //運(yùn)算符 重載為友元函數(shù) void display()。 //顯示復(fù)數(shù)的值 private: //私有數(shù)據(jù)成員 double real。 double imag。 }。 35 plex operator +(plex c1,plex c2) //運(yùn)算符重載友元函數(shù)實(shí)現(xiàn) { return plex(+, +)。 } //注意友元不是成員函數(shù),也不加 friend //友元函數(shù)可以直接訪問(wèn)私有成員 plex operator (plex c1,plex c2) //運(yùn)算符重載友元函數(shù)實(shí)現(xiàn) { return plex(, )。 } // 其他函數(shù)和主函數(shù)同例 81 36 C++語(yǔ)言程序設(shè)計(jì) 37 友元函數(shù)重載運(yùn)算符 +,有三種形式。另兩個(gè)的聲明為: friend Complex operator + (double,Complex)。 friend Complex operator + (Complex , double ) 。 則無(wú)論是復(fù)數(shù)與復(fù)數(shù)相加,還是實(shí)數(shù)與復(fù)數(shù)相加(不論實(shí)數(shù)在前還是在后)都可以用該運(yùn)算符三個(gè)重載函數(shù)之一。 再 進(jìn)一步 ,如果使用友元函數(shù) friend plex operator +(plex c1 , plexc2) 。 無(wú)論是復(fù)數(shù)與復(fù)數(shù)相加,還是實(shí)數(shù)與復(fù)數(shù)相加(不論實(shí)數(shù)在前還是在后)都可以用該運(yùn)算符重載函數(shù)。 因?yàn)橛卸x的 缺省的構(gòu)造函數(shù) ,實(shí)數(shù)會(huì)被 強(qiáng)制轉(zhuǎn)換 為虛部為零的復(fù)數(shù)。 d+c1被解釋為 operator+(plex(d) , c1)。注意這里的兩個(gè)參數(shù)是傳值,在函數(shù)內(nèi)是建立了兩個(gè)復(fù)數(shù)對(duì)象,而把實(shí)參的值傳進(jìn)去,進(jìn)行運(yùn)算。參見(jiàn)下圖。 C++語(yǔ)言程序設(shè)計(jì) 38 在這里友元函數(shù)可以有兩個(gè)參數(shù) , 而對(duì)應(yīng)的成員函數(shù)只有一個(gè)參數(shù) , 所以友元函數(shù)的使用可以更靈活 、 更方便 。 使用 引用 類(lèi)型變量作為運(yùn)算符重載函數(shù)的參數(shù) , 以提高復(fù)數(shù)類(lèi)型運(yùn)算的效率和可行性 。 Operator+友元函數(shù)的聲明可改進(jìn)為: friend Complex operator+(const Complex amp。 c1, const Complex amp。 c2) 這里采用 Complex對(duì)象的引用而不是對(duì)象本身 , 調(diào)用時(shí)不再重新分配內(nèi)存建立一個(gè)復(fù)制的對(duì)象 , 函數(shù)效率會(huì)更高 。 加 const
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1