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

正文內(nèi)容

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

2025-10-07 18:16本頁面
  

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