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

正文內(nèi)容

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

2024-08-28 13:22 本頁面
 

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