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

正文內(nèi)容

清華c語言程序設計:第11章類和對象-wenkub.com

2024-10-15 17:13 本頁面
   

【正文】 //釋放動態(tài)創(chuàng)建的對象 return 0。 //定義局部動態(tài)對象 two { CreateAndDestroy three(3)。 }。 ? 對象中包含動態(tài)分配的數(shù)據(jù)成員時,復制構(gòu)造函數(shù)的實現(xiàn)不能只是簡單的賦值 ? 應該先為當前對象的數(shù)據(jù)成員分配新的空間 ? 再將參數(shù)對象中相應的數(shù)據(jù)復制過來 析構(gòu)函數(shù) (1/3) ? 析構(gòu)函數(shù)名是字符“ ~”加上類名 ? 析構(gòu)函數(shù)不能指定返回類型 ? 不能被重載 ? 沒有參數(shù) ? 其作用是在撤銷對象前為對象做最后的清理工作 ? 一般為釋放對象在生存期內(nèi)動態(tài)分配的空間 析構(gòu)函數(shù) (2/3) ? 析構(gòu)函數(shù)執(zhí)行的時機 ? 對象被撤銷時,類的析構(gòu)函數(shù)被自動調(diào)用 ? 全局對象在所有程序執(zhí)行完畢之后被撤銷(執(zhí)行完main函數(shù)最后一條語句或執(zhí)行 exit語句之后) ? 如果程序以 abort語句終止執(zhí)行,全局對象的析構(gòu)函數(shù)不被執(zhí)行 ? 局部動態(tài)對象在退出該對象的作用域時被撤銷 ? 如果程序在退出該程序塊之前以 exit或 abort終止執(zhí)行 , 局部動態(tài)對象的析構(gòu)函數(shù)不會執(zhí)行 析構(gòu)函數(shù) (3/3) ? 析構(gòu)函數(shù)執(zhí)行的時機 ? 局部靜態(tài)對象在程序執(zhí)行完畢后或程序執(zhí)行 exit語句之后 , 其析構(gòu)函數(shù)被執(zhí)行 ? 如果程序以 abort語句終止執(zhí)行,局部靜態(tài)對象的析構(gòu)函數(shù)不被執(zhí)行 ? 局部靜態(tài)對象的析構(gòu)函數(shù)在全局對象的析構(gòu)函數(shù)執(zhí)行之前執(zhí)行 ? 動態(tài)創(chuàng)建對象的析構(gòu)函數(shù)在執(zhí)行相應的 delete操作時執(zhí)行 ? 如果程序不使用 delete釋放動態(tài)創(chuàng)建的對象 , 該對象不會被釋放 例子 8:編程演示構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行時機 (2/2) //文件 if !defined __CREATEANDDESTORY__H__ define __CREATEANDDESTORY__H__ include class CreateAndDestroy { public: CreateAndDestroy(int n) { no = n。 //x、 y坐標 double r。 y = 。 if (c0) r = c。 Circle d(, , )。 Circle b()。 //x、 y坐標 double r。 if (c0) r = c。 //調(diào)用第 1個構(gòu)造函數(shù),對象 obj中的 x、 y、 r都被賦值為 5 Circle obj1(, , )。 } private: double x, y。 y = b。 //聲明兩個指針 ? pone = new Circle。one。 //半徑 }。 } 程序運行結(jié)果: There is 0 stack. After stack one created, there is 1 stack. After stack two created, there are 2 stacks. After stack two destroyed, there is 1 stack. After stack one destroyed, there is 0 stack. 類和對象的定義 (10/12) ? 頭文件的包含問題 ? 頭文件會被其他頭文件或源文件包含 ? 一個源文件可能會多次包含一個頭文件 包含 包含 包含 和 ? 例子 4:圓形類 Circle的定義 //文件 if !defined __CIRCLE__H__ define __CIRCLE__H__ include class Circle { public: Circle()。 coutAfter stack two, there are () stacks. endl。 Stack *ptr = amp。 } //初始化類的靜態(tài)數(shù)據(jù)成員 int Stack::objNum = 0。 return 1。 objNum。 size = s。 //棧元素個數(shù) int size。 //函數(shù)原型 int push(int mem)。 ? 系統(tǒng)根據(jù)提供的參數(shù)列表確定要調(diào)用的構(gòu)造函數(shù) 抽象數(shù)據(jù)類型 (13/13) ? 封裝和信息隱藏技術(shù)使類變得很安全 ? 私有數(shù)據(jù)成員只有類自己的成員函數(shù)能訪問 ? 只要確保成員函數(shù)操作的合理合法性,對象就是安全的 ? 接口和實現(xiàn)的分離使得類的實現(xiàn)被獨立出來 ? 類的實現(xiàn)部分的修改不會影響到程序的其他部分 類和對象的定義 (1/12) ? 數(shù)據(jù)成員 ? 可以定義各種類型的變量、指針、數(shù)組等,甚至是其他類的對象 ? 在類的定義中只能聲明數(shù)據(jù)成員,不能賦值 ? 數(shù)據(jù)成員一般放在 private部分,外界通過公有成員函數(shù)訪問他們 ? 數(shù)據(jù)成員也可以放在 public部分,但不提倡 類和對象的定義 (2/12) ? 成員函數(shù) ? 作用 ——響應發(fā)送給類的對象的消息 ? 可以放在 public部分(可以被外部函數(shù)調(diào)用),也可以是私有的(供自己的成員函數(shù)使用) ? 成員函數(shù)的實現(xiàn)一般放在類的外面,并且與類的定義不在一個文件中(也可以在類的里面) ? 除了極短的函數(shù)以外,建議類的所有成員函數(shù)的實現(xiàn)都放在類的外面 類和對象的定義 (3/12) ? 訪問控制 ? 三個訪問說明符: public、 private和protected ? 作用 ——控制對類的成員的訪問 ? 在用 class定義的類中,默認的訪問方式是private ? 在類的定義中,三個訪問說明符都可以使用多次(不提倡) 類和對象的定義 (4/12) ? 訪問控制 ? 類的私有成員只能被類的成員函數(shù)、友元訪問 ? 類的受保護成員能被類的成員函數(shù)、友元和派生類成員函數(shù)訪問 ? 類的公有成員可以被類的成員函數(shù)、友元以及所有能訪問到類的對象的外部程序代碼直接訪問 ? 類的公有成員是類的對外接口 類和對象的定義 (5/12) ? 最低訪問權(quán)原則 ? 如果某函數(shù)不需要訪問某些數(shù)據(jù),則不給它訪問的權(quán)限(如外部函數(shù)與類的私有屬性) ? 如
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1