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

正文內(nèi)容

[理學(xué)]cppt第十三章-資料下載頁(yè)

2024-10-16 20:22本頁(yè)面
  

【正文】 return output。 } 42 NUDT, Computer School, 602, 例 6: 重載運(yùn)算符 +和 =,使得類(lèi) String的對(duì)象 x、 y、 z可以執(zhí)行表達(dá)式 x = y + z (3/6) //續(xù) 文件 //定義運(yùn)算符 重載函數(shù) istream amp。 operator( istream amp。input, String amp。s) { char temp[1000]。 cin temp。 delete [] 。 = new char[strlen(temp)+1]。 strcpy(,temp)。 return input。 } 43 NUDT, Computer School, 602, 例 6: 重載運(yùn)算符 +和 =,使得類(lèi) String的對(duì)象 x、 y、 z可以執(zhí)行表達(dá)式 x = y + z (4/6) //續(xù) 文件 String amp。String::operator=(String amp。s) { if (amp。s == this) //檢查是否自我賦值 , 重要 ! return *this。 delete []str。 //釋放當(dāng)前對(duì)象的數(shù)據(jù)空間 str = new char[strlen()+1]。 //重新分配適當(dāng)大小的空間 strcpy(str, )。 return *this。 } 44 NUDT, Computer School, 602, 例 6: 重載運(yùn)算符 +和 =,使得類(lèi) String的對(duì)象 x、 y、 z可以執(zhí)行表達(dá)式 x = y + z (5/6) //續(xù) 文件 String amp。String::operator+(String amp。s) { static String res。 //為什么要聲明 res為靜態(tài)對(duì)象 ? char *temp = new char[strlen(str)+ strlen()+1]。 strcpy(temp,str)。 strcat(temp,)。 delete [] 。 = temp。 return res。 } 45 NUDT, Computer School, 602, 例 6: 重載運(yùn)算符 +和 =,使得類(lèi) String的對(duì)象 x、 y、 z可以執(zhí)行表達(dá)式 x = y + z (6/6) //文件 , 測(cè)試重載的運(yùn)算符 include main() {String s1,s2。 cout Please input two strings: endl。 cin s1 s2。 cout Output is: endl。 cout s1 s1 endl。 cout s2 s2 endl。 s1 = s1 + s2。 cout after s1 = s1 + s2。 endl。 cout s1 s1 endl。 return 0。 } 46 NUDT, Computer School, 602, 程序執(zhí)行結(jié)果: Please input two strings: Wuhan Changsha Output is: s1 Wuhan s2 Changsha after s1 = s1 + s2。 s1 WuhanChangsha 47 NUDT, Computer School, 602, 學(xué)習(xí)目的檢測(cè) ? 了解運(yùn)算符重載的概念和意義 ? 掌握運(yùn)算符重載的限制 ? 掌握流插入和流提取運(yùn)算符的重載方法 ? 掌握 以成員函數(shù)的方式重載運(yùn)算符 的方法 ? 掌握 以友元函數(shù)的方式重載運(yùn)算符 的方法 ? 了解運(yùn)算符成員函數(shù)和友元函數(shù)的區(qū)別 ? 掌握賦值運(yùn)算符重載的方法 ? 了解類(lèi)型轉(zhuǎn)換運(yùn)算符的重載方法 48 NUDT, Computer School, 602, 作業(yè) ? 筆答: , ? 上機(jī): , 修改 : ? 重載二元運(yùn)算符 +,使之具有 Time對(duì)象和整數(shù)(天數(shù))相加的功能; ? 重載流插入運(yùn)算符 ,使用函數(shù) ctime()輸出類(lèi) Time的對(duì)象 49 NUDT, Computer School, 602, Thanks! 50 NUDT, Computer School, 602, 運(yùn)算符可以看作為一種特殊的函數(shù) ? 運(yùn)算符函數(shù)可作為自定義類(lèi)的成員函數(shù)或友元函數(shù) cin num 可看作函數(shù) (num) 51 NUDT, Computer School, 602, 默認(rèn)的賦值方式可能出錯(cuò) String s1(abc), s2(def)。 s1 = s2。 ? 賦值后, s1和 s2的指針 str都指向了同一塊數(shù)據(jù)空間(即存放 def的存儲(chǔ)空間) ? 另一塊存放 abc的空間就被遺棄了,將無(wú)法被訪問(wèn)和釋放 ? 如果某個(gè)時(shí)刻對(duì)象 s1被撤銷(xiāo),其析構(gòu)函數(shù)將釋放其指針 str所指向的數(shù)據(jù)空間 “def”( 也就是對(duì)象 s2的指針 str所指向的數(shù)據(jù)空間),程序再訪問(wèn)對(duì)象 s2的數(shù)據(jù)、或者撤銷(xiāo)對(duì)象 s2時(shí)都會(huì)發(fā)生指針錯(cuò)誤 52 NUDT, Computer School, 602, 類(lèi)型之間的轉(zhuǎn)換 (1/2) ? 如何實(shí)現(xiàn)用戶(hù)自定義類(lèi)型和其它類(lèi)型之間的轉(zhuǎn)換? ? C++提供了兩種類(lèi)型轉(zhuǎn)換方式,一種是通過(guò) 轉(zhuǎn)換構(gòu)造函數(shù) 實(shí)現(xiàn)將其它類(lèi)型的數(shù)據(jù)轉(zhuǎn)換成自定義類(lèi)的對(duì)象;另一種是通過(guò) 類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù) 實(shí)現(xiàn)將自定義類(lèi)的對(duì)象轉(zhuǎn)換成其它類(lèi)型的數(shù)據(jù) ? 類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù) 必須是類(lèi)的非靜態(tài)成員函數(shù),不能是友元函數(shù)。類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù)沒(méi)有參數(shù)(如同單目運(yùn)算符作為成員函數(shù)重載),不能指定返回類(lèi)型(因?yàn)轭?lèi)型轉(zhuǎn)換符已經(jīng)指定了返回類(lèi)型) 53 NUDT, Computer School, 602, 類(lèi)型之間的轉(zhuǎn)換 (2/2) ? 類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù) 原型的例子: operator int ( ) const。 如果 obj是該自定義類(lèi)的一個(gè)對(duì)象,則(int)obj將會(huì)產(chǎn)生函數(shù)調(diào)用 int( ), 該函數(shù)將根據(jù)調(diào)用它的對(duì)象 obj生成一個(gè) int類(lèi)型的數(shù)據(jù)并返回該數(shù)據(jù) ? 當(dāng)需要的時(shí)候,編譯器會(huì)自動(dòng)調(diào)用 類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù) 來(lái)建立一個(gè)臨時(shí)對(duì)象,就像對(duì)內(nèi)部類(lèi)型使用提升規(guī)則一樣
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1