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

正文內(nèi)容

清華c語(yǔ)言程序設(shè)計(jì):第13章運(yùn)算符重載(參考版)

2024-10-21 17:14本頁(yè)面
  

【正文】 學(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)算符的重載方法 作業(yè) 。 該函數(shù)根據(jù)對(duì)象 obj生成一個(gè) int類(lèi)型的數(shù)據(jù) ? 需要的時(shí)候,編譯器會(huì)自動(dòng)調(diào)用類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù)來(lái)建立一個(gè)臨時(shí)對(duì)象 ? 就像對(duì)內(nèi)部類(lèi)型使用提升規(guī)則一樣 類(lèi)型之間的轉(zhuǎn)換 (4/4) ? 轉(zhuǎn)換構(gòu)造函數(shù) ? 只有一個(gè)參數(shù),就是其它類(lèi)型的對(duì)象 ? 根據(jù)該對(duì)象初始化自定義類(lèi)型的對(duì)象 ? 轉(zhuǎn)換構(gòu)造函數(shù)例子 String(const char *m=)。 將類(lèi)的對(duì)象轉(zhuǎn)換成一個(gè) int類(lèi)型的數(shù)據(jù) ? 如果 obj是該自定義類(lèi)的一個(gè)對(duì)象,則: (int)obj。 } 程序執(zhí)行結(jié)果: Please input two strings: Wuhan Changsha Output is: s1 Wuhan s2 Changsha after s1 = s1 + s2。 cout s1 s1 endl。 cout after s1 = s1 + s2。 cout s2 s 2 endl。 cout Output is: endl。 cout Please input two strings: endl。 return res。 = new char[strlen(temp)+1]。 strcat(temp,)。 //為什么要聲明 res為靜態(tài)對(duì)象 char temp[4096]。String::operator+(String amp。 return *this。 //釋放當(dāng)前對(duì)象的數(shù)據(jù)空間 str = new char[strlen()+1]。s == this) //檢查是否自我賦值 , 非常重要 return *this。String::operator=(String amp。 return input。 = new char[strlen(temp)+1]。 cintemp。input, String amp。 } 例 6:定義類(lèi) String, 重載運(yùn)算符 +和 =(3/6) //續(xù)文件 //定義運(yùn)算符 重載函數(shù) istream amp。s) { output。 operator(ostream amp。 } String::~String() { delete [] str。 endif 例 6:定義類(lèi) String, 重載運(yùn)算符 +和 =(2/6) //文件 , 類(lèi) String的實(shí)現(xiàn) include include String::String(char *m) { str = new char[strlen(m)+1]。 private: char *str。 operator+(String amp。s)。 String amp。 public: String(char *m=)。input, String amp。 friend istream amp。output, String amp。 賦值的結(jié)果是:對(duì)象 s1和 s2的指針 str都指向了同一塊數(shù)據(jù)空間 賦值運(yùn)算符重載 (2/2) ? 問(wèn)題: ? 存放 “ abc”的空間被遺棄,將無(wú)法被訪問(wèn) ? 如果對(duì)象 s1被撤銷(xiāo) —— ? 其析構(gòu)函數(shù)將釋放其指針 str所指向的空間 “ def” ? 對(duì)象 s2的指針 str所指向的空間被破壞 ? 訪問(wèn) s2的數(shù)據(jù)、撤銷(xiāo) s2時(shí)都會(huì)發(fā)生指針錯(cuò)誤 ? 對(duì)象中包含動(dòng)態(tài)分配的空間,賦值運(yùn)算符需要自己重載 例 6:定義類(lèi) String, 重載運(yùn)算符 +和 =(1/6) //文件 , 定義類(lèi) String if !defined __STRING__H__ define __STRING__H__ include class String { friend ostream amp。 } 賦值運(yùn)算符重載 (1/2) ? 賦值運(yùn)算符可直接用在自定義類(lèi)的對(duì)象賦值 ? 默認(rèn)操作是逐個(gè)拷貝對(duì)象的所有數(shù)據(jù)成員 ? 如果對(duì)象中包含動(dòng)態(tài)分配的空間,這種賦值方式就不合適了,如 String s1(abc), s2(def)。 strcpy(, temp)。 delete []。 strcpy(temp, )。x, String amp。 //運(yùn)算符重載函數(shù) operator+=的實(shí)現(xiàn) String amp。y)。 operator+=(String amp。 return 0。 s1+=s2。 cins1s2。 return *this。 str = new char[strlen(temp)+1]。 strcat(temp,)。s) { char temp[4096]。 } 例 5:定義類(lèi) String, 重載運(yùn)算符 +=, x+=y將 y中的字符串連接到 x的后面 (4/5) //定義運(yùn)算符 +=重載函數(shù) String amp。 strcpy(,temp)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1