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

正文內(nèi)容

[工學(xué)]c第3講new-資料下載頁(yè)

2025-10-07 18:16本頁(yè)面
  

【正文】 的是需要進(jìn)行初始化的數(shù)據(jù)成員 , 然后是由一對(duì)小括號(hào)括起來(lái)的初始值 。 ? 初始化列表僅在構(gòu)造函數(shù)中有效 , 不能用于其他函數(shù) 。 ? 構(gòu)造函數(shù)的初始化列表可以初始化任何數(shù)據(jù)成員( const或非 const) , ? 但 const類型數(shù)據(jù)成員只能在初始化列表里初始化 , 而不能用其他辦法進(jìn)行初始化 。 81 構(gòu)造函數(shù)初始化程序 82 構(gòu)造函數(shù)與操作符 new和 new[ ] ? 當(dāng)使用動(dòng)態(tài)方式為一個(gè)對(duì)象分配存儲(chǔ)空間時(shí) , C++操作符 new和 new[ ]比 C函數(shù) malloc 和 calloc 做得更好 。因?yàn)椴僮鞣?new 和 new[ ]在分配存儲(chǔ)空間的同時(shí) , 還會(huì)調(diào)用相應(yīng)的構(gòu)造函數(shù) , 而 malloc和 calloc無(wú)法完成這個(gè)任務(wù) 。 83 構(gòu)造函數(shù)與操作符 new和 new[ ] 84 析構(gòu)函數(shù) ? 創(chuàng)建類的對(duì)象時(shí) , 會(huì)自動(dòng)調(diào)用某個(gè)合適的構(gòu)造函數(shù) 。同樣 , 當(dāng)對(duì)象被摧毀時(shí) , 也會(huì)自動(dòng)調(diào)用一個(gè)析構(gòu)函數(shù) ? 對(duì)象的摧毀出現(xiàn)在如下兩種情況: ? 以某個(gè)類作為數(shù)據(jù)類型的變量超出其作用范圍 。 ? 用 delete操作符刪除動(dòng)態(tài)分配的對(duì)象 。 85 析構(gòu)函數(shù) ? 與構(gòu)造函數(shù)一樣 , 析構(gòu)函數(shù)也是一個(gè)成員函數(shù) 。 ? 對(duì)于類 C, 其析構(gòu)函數(shù)的原型為: ~C()。 ? 由于析構(gòu)函數(shù)不帶參數(shù) , 因此不能被重載 , 這樣 , 每個(gè)類只能擁有一個(gè)析構(gòu)函數(shù) 。 ? 與構(gòu)造函數(shù)一樣 , 析構(gòu)函數(shù)也沒有返回類型 , 所以下面的析構(gòu)函數(shù)聲明是錯(cuò)誤的: void ~C()。 86 析構(gòu)函數(shù) 87 構(gòu)造函數(shù)和 析構(gòu)函數(shù)小結(jié) ? 在創(chuàng)建對(duì)象時(shí) , 類的構(gòu)造函數(shù)負(fù)責(zé)完成初始化和其他相關(guān)的操作 ? 析構(gòu)函數(shù)在對(duì)象摧毀時(shí)完成相應(yīng)的清理工作 ( 例如將構(gòu)造函數(shù)分配的資源釋放掉 ) 。 ? 建議為每個(gè)帶有數(shù)據(jù)成員的類設(shè)計(jì)一個(gè)默認(rèn)構(gòu)造函數(shù) ,如果需要 , 也要設(shè)計(jì)其他構(gòu)造函數(shù)及析構(gòu)函數(shù) 。 88 示例程序: Task類 ? 功能:用于任務(wù)管理。 ? 數(shù)據(jù)成員: TaskID、任務(wù)開始時(shí)間、任務(wù)完成時(shí)間和任務(wù)持續(xù)時(shí)間。 ? 公有接口: ? 存取上述數(shù)據(jù)成員的函數(shù)。 ? 任務(wù)完成后,輸出一條描述該任務(wù)的記錄到日志文件。 89 示例程序: Task類 ? 日志文件的格式: ? 由多條記錄組成 ? 每一條記錄都記錄了某個(gè)任務(wù)的相關(guān)信息,包括: ? Task I D ? ST: 用字符串表示的任務(wù)開始時(shí)間 ? FT: 用字符串表示的任務(wù)完成時(shí)間 ? DU: 用整型數(shù)表示的任務(wù)持續(xù)時(shí)間。 90 示例程序: Task類 91 示例程序: Task類 ? 測(cè)試程序: 92 示例程序: Task類 ? 解決方案 ? 用 Task的構(gòu)造函數(shù)來(lái)確保每個(gè) Task都有一個(gè) TaskID,為此可將缺省構(gòu)造函數(shù)設(shè)計(jì)為私有的 。 同時(shí)設(shè)計(jì)帶參數(shù)的構(gòu)造函數(shù) 。 該 ID使用 string或 char*作為參數(shù)數(shù)據(jù)類型 。 ? 另外 , 可以設(shè)計(jì)對(duì) TaskID進(jìn)行存 ( SetID) 或?。?GetID) 的函數(shù) , 同樣可使用 string或 char*作為參數(shù)數(shù)據(jù)類型 93 94 示例程序: Task類 ? 解決方案 ? 為了描述一個(gè) Task的開始時(shí)間和結(jié)束時(shí)間,使用前面介紹的 TimeStamp類。 ? Task 擁有兩個(gè) TimeStamp類型的私有數(shù)據(jù)成員,一個(gè)用于開始時(shí)間( ST),另一個(gè)用于結(jié)束時(shí)間 (FT) ? 另外需要設(shè)計(jì)對(duì) ST和 FT進(jìn)行存取的函數(shù) 95 示例程序: Task類 ? 解決方案 ? 為了描述一個(gè) Task的持續(xù)時(shí)間 , 也可以為 Task類設(shè)計(jì)一個(gè)long型的數(shù)據(jù)成員 ? 但本例沒有設(shè)計(jì)該數(shù)據(jù)成員 , 而是利用庫(kù)函數(shù) difftime來(lái)計(jì)算 Task的持續(xù)時(shí)間 ? difftime函數(shù)返回兩個(gè) time_t類型的值之間的間隔 。 ? 原型: double difftime( time_t timer1, time_t timer0)。 ? 為 Task類 設(shè)計(jì)一個(gè)對(duì)持續(xù)時(shí)間進(jìn)行操作的函數(shù) ( 只能獲取 ,不能設(shè)置 ) 96 示例程序: Task類 ? 解決方案 ? 設(shè)計(jì)一個(gè)數(shù)據(jù)成員來(lái)記錄日志文件的名字。 ? 設(shè)計(jì)一個(gè)成員函數(shù)來(lái)寫日志文件。 97 示例程序: Task類 ? 文件打開模式: ? in: 打開文件用于讀取 ? out: 打開文件用于寫入 ? ate : 打開文件并移到末尾 ? app: 打開文件用于追加 ? trunc: 若文件已存在 , 打開文件并截取流 ( 清除原來(lái)的數(shù)據(jù) ) ? binary: 以二進(jìn)制流方式打開文件 98 示例程序: Task類 ? 為防止程序員忘了在 Task 對(duì)象被摧毀之前調(diào)用logToFile函數(shù) , Task類在其析構(gòu)函數(shù)中調(diào)用該函數(shù) ,以確保任何任務(wù)的信息都輸出到日志文件當(dāng)中 。 ? 比如 , 本例中 , Defrost pizzas任務(wù)最先創(chuàng)建 , 但由于它是最后被摧毀的 , 所以在日志文件中最后出現(xiàn) 。 99 示例程序: Task類 ? 完整實(shí)現(xiàn)程序: P109 100 上機(jī)作業(yè): ? P126: 31, 35。 38
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1