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

正文內(nèi)容

第10章創(chuàng)建功能更強(qiáng)的類型-文庫吧資料

2025-07-26 07:10本頁面
  

【正文】 括號(hào)中,直接調(diào)用與實(shí)參類型相匹配的構(gòu)造函數(shù)。 i high –low + 1。 storage = new double [high – low + 1]。arr) { low = 。 前兩個(gè)操作沒有問題,第三個(gè)操作中, storage是一個(gè)指針,第三個(gè)操作意味著使 arr1的 storage指針和 arr2的storage指針指向同一塊空間。 = 。但默認(rèn)的拷貝構(gòu)造函數(shù)卻不能勝任。 ? 但某些情況下可能需要設(shè)計(jì)自己的拷貝構(gòu)造函數(shù)。 y = 2 * 。} point(const point amp。 public: point(int a, int b) { x = a。該函數(shù)將已存在的對(duì)象原式原樣地復(fù)制給新成員 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 66 自定義拷貝構(gòu)造函數(shù) Classname(const classname amp。 ? 拷貝構(gòu)造函數(shù)以一個(gè)同類對(duì)象引用作為參數(shù),它的原型為: 類名( const 類名 amp。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 64 拷貝構(gòu)造函數(shù) ? 在創(chuàng)建一個(gè)對(duì)象時(shí),可以用一個(gè)同類的對(duì)象對(duì)其初始化。 else cout 下標(biāo)越界 \n。 if (i == 0) break。 } while (true) { cout 請(qǐng)輸入要查找的元素序號(hào)( 0表示結(jié)束) :。 cin value。 i=30。 double value。 include int main() { DoubleArray array(20,30)。 } }。value)。 } bool insert(int index, double value)。 double *storage。有了析構(gòu)函數(shù),就不需要 cleanup函數(shù)了 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 62 析構(gòu)函數(shù)舉例 class DoubleArray{ int low。 ? 一般在構(gòu)造函數(shù)中有動(dòng)態(tài)申請(qǐng)內(nèi)存的,必須有析構(gòu)函數(shù)。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 60 析構(gòu)函數(shù) ? 析構(gòu)函數(shù)在撤銷對(duì)象時(shí),完成一些善后工作,由編譯系統(tǒng)自動(dòng)調(diào)用 ? 析構(gòu)函數(shù)與構(gòu)造函數(shù)名字相同,但它前面必須加一個(gè)波浪號(hào)( ~) ? 析構(gòu)函數(shù)沒有參數(shù),沒有返回值,也不能重載。 cout () endl。 } } main() {timer a(20), b(1, 20), c(1, 1, 10)。} timer(int h, int min, int sec) {second=sec+60*min+3600*h。 public: timer(int t) { second = t。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 59 時(shí)間轉(zhuǎn)換器的實(shí)現(xiàn) include iostream Using namespace std。在初始化數(shù)據(jù)成員的同時(shí)完成了賦初始的工作。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 57 為什么要使用初始化列表 ? 對(duì)象的構(gòu)造過程: ? 執(zhí)行每一個(gè)數(shù)據(jù)成員的構(gòu)造函數(shù)。 ? 構(gòu)造函數(shù)初始化列表位于函數(shù)頭和函數(shù)體之間。 ? 括號(hào)中的實(shí)際參數(shù)要和構(gòu)造函數(shù)的形式參數(shù)表相對(duì)應(yīng)。此時(shí),定義 Rational r1(3,5), r2。 ReductFraction()。 ? 一般每個(gè)類應(yīng)該有一個(gè)缺省的構(gòu)造函數(shù) 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 54 帶缺省值的 Rational類的構(gòu)造函數(shù) ? Rational(int n1 = 0, int n2 = 1) { num = n1。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 53 構(gòu)造函數(shù)的使用 ? 有了構(gòu)造函數(shù)后,對(duì)象定義的一般形式為: 類名 對(duì)象名(實(shí)際參數(shù)表); 其中,實(shí)際參數(shù)表必須和該類的某一個(gè)構(gòu)造函數(shù)的形式參數(shù)表相對(duì)應(yīng)。} ? 定義對(duì)象時(shí),須指定構(gòu)造函數(shù)的實(shí)際參數(shù)。 den = n2。 ? 定義對(duì)象時(shí),須指定構(gòu)造函數(shù)的實(shí)際參數(shù) DoubleArray array(20, 30)。} 有了構(gòu)造函數(shù),就不需要 initialize函數(shù)了。 high = rh。它只為對(duì)象開辟存儲(chǔ)空間,空間中的內(nèi)容為隨機(jī)數(shù)。因此在定義構(gòu)造函數(shù)時(shí),不能說明它的類型,甚至說明為 void類型也不行。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 50 構(gòu)造函數(shù)的特點(diǎn) ? 定義對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 49 構(gòu)造函數(shù)與析構(gòu)函數(shù) ? 構(gòu)造函數(shù)和析構(gòu)函數(shù)是特殊的成員函數(shù) ? 構(gòu)造函數(shù):對(duì)數(shù)據(jù)成員進(jìn)行初始化。 ? 用戶希望使用類的對(duì)象就和使用內(nèi)置類型的變量一樣,一旦定義了,就能直接使用。 ? 對(duì)于某些類的對(duì)象在消亡前,往往也需要執(zhí)行一些操作,做一些善后的處理。 ? 如果在成員函數(shù)中要把對(duì)象作為整體來訪問時(shí),必須顯式地使用 this指針。 thisden = d。 den = d。而類中的成員函數(shù)對(duì)該類的所有對(duì)象只有一份拷貝。 ? 當(dāng)一個(gè)對(duì)象賦值給另一個(gè)對(duì)象時(shí),所有的數(shù)據(jù)成員都會(huì)逐位拷貝。 return 0。 ()。 ()。 //執(zhí)行 r3=r1*r2 ()。 cout endl。 cout = 。 cout + 。 (r1, r2)。 cin n d。 (n,d)。 //定義三個(gè)有理數(shù)類的對(duì)象 計(jì)算兩個(gè)有理數(shù)的和與積 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 42 cout 請(qǐng)輸入第一個(gè)有理數(shù)(分子和分母): 。 include //使用有理數(shù)類 int main() { int n, d。 rp = new Rational[20]。 Rational *rp。} } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 38 第 10章 創(chuàng)建功能更強(qiáng)的類型 ? 從面向過程到面向?qū)ο? ? 類的定義 ? 對(duì)象的使用 ? 對(duì)象的構(gòu)造與析構(gòu) ? 常量對(duì)象與 const成員函數(shù) ? 常量數(shù)據(jù)成員 ? 靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù) ? 友元 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 39 對(duì)象的定義 ? 類與對(duì)象的關(guān)系:類型與變量的關(guān)系 ? 對(duì)象定義方法: ?直接在程序中定義某個(gè)類的對(duì)象 存儲(chǔ)類別 類名 對(duì)象列表; 如定義兩個(gè) IntArray類的對(duì)象 arr1和 arr2,可寫成: IntArray arr1, arr2。 den /= tmp。amp。 tmp 1。 } // ReductFraction實(shí)現(xiàn)有理數(shù)的化簡 void Rational::ReductFraction() {int tmp = (num den) ? den : num。 den = * 。r1, const Rational amp。 ReductFraction()。r2) { num = * + * 。 endif 有理數(shù)類的定義 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 36 有理數(shù)類的實(shí)現(xiàn) include “ //add函數(shù)將 r1和 r2相加,結(jié)果存于當(dāng)前對(duì)象 void Rational::add(const Rational amp。 den。 void display() { cout num 39。r1, const Rational amp。r2)。} void add(const Rational amp。 //將有理數(shù)化簡成最簡形式 public: void create(int n, int d) { num = n。 int den。 ? 有理數(shù)類的操作: ? 加函數(shù) ? 乘函數(shù) ? 創(chuàng)建有理數(shù)的函數(shù),用以設(shè)置有理數(shù)的分子和分母 ? 輸出有理數(shù)函數(shù) ? 化簡函數(shù) ? 訪問權(quán)限設(shè)計(jì): ? 數(shù)據(jù)成員是私有的 ? 化簡函數(shù)是內(nèi)部調(diào)用的函數(shù),與用戶無關(guān),因此也是私有的 ? 其他函數(shù)都是公有的 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 35 ifndef _rational_h define _rational_h include iostream using namespace std。如 2/6應(yīng)記錄為 1/3。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 33 類定義實(shí)例 ? 試定義一個(gè)有理數(shù)類,該類能提供有理數(shù)的加和乘運(yùn)算。 ? 某些簡單的成員函數(shù)的定義可以直接寫在類定義中。也可以反復(fù)出現(xiàn)多次。 }。value)。 bool insert(int index, double value)。 double *storage。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 27 第 10章 創(chuàng)建功能更強(qiáng)的類型 ? 從面向過程到面向?qū)ο? ? 類的定義 ? 對(duì)象的使用 ? 對(duì)象的構(gòu)造與析構(gòu) ? 常量對(duì)象與 const成員函數(shù) ? 常量數(shù)據(jù)成員 ? 靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù) ? 友元 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 28 類定義的一般格式 ? class 類名 { [private:] 私有數(shù)據(jù)成員和成員函數(shù) public: 公有數(shù)據(jù)成員和成員函數(shù) }; 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 29 公有和私有成員 ? 私有成員 (private):只能由類的成員函數(shù)調(diào)用 ? 公有成員 (public):類的用戶可以調(diào)用的信息,是類對(duì)外的接口 ? 私有成員被封裝在一個(gè)類中,類的用戶是看不見的 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 30 DoubleArray類的定義 class DoubleArray { private: int low。事實(shí)上,它就成為了和內(nèi)置類型一樣的一種全新的數(shù)據(jù)類型。 ? 將處理這組數(shù)據(jù)的函數(shù)也加入到結(jié)構(gòu)體中,結(jié)構(gòu)體就有了全新的功能。 return 0。 else cout 下標(biāo)越界 \n。 if (i == 0) break。 } while (true) { //數(shù)組元素的查找 cout 請(qǐng)輸入要查找的元素序號(hào) (0表示結(jié)束) :。 cin value。 i = high。 return 1。 cin low high。 int low, high, i。 include “ int main() { DoubleArray array。 } 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 23 改進(jìn)后的 Array庫的應(yīng)用 ? 函數(shù)的調(diào)用方法不同。 if (storage == NULL) return false。 high = rh。 }。value)。 bool insert(int index, double value)。 double *storage。 《 程序設(shè)計(jì) 》 程序設(shè)計(jì) 21 改進(jìn)后的 Array庫的頭文件 ifndef _array_h define _array_h struct DoubleArray{ int low。編譯器自然知道函數(shù)體中涉及到的 low, high和storage是同一結(jié)構(gòu)體變量中的成員 ?函數(shù)名沖突的問題也得到了解決。 ? 對(duì)數(shù)組元素的操作不能直接用下標(biāo)變量的形式表示。而我們這個(gè)數(shù)組的下標(biāo)范圍要用 initialize函數(shù)來指定,比內(nèi)置數(shù)組多了一個(gè)操作。庫的設(shè)計(jì)者都可能覺得 initialize和cleanup是比較合適的名字,因而都寫了這兩個(gè)函數(shù)。每次調(diào)用和數(shù)組有關(guān)的函數(shù)時(shí),都要傳遞一個(gè)結(jié)構(gòu)體給它。 return 0。 else cout 下標(biāo)越界 \n。 if (i == 0) break。 } while (true) { cout 請(qǐng)輸入要查找的元素序號(hào)( 0表示結(jié)束): 。 cin val
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1