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

正文內容

清華大學c課件第5章(參考版)

2024-10-19 13:37本頁面
  

【正文】 } 60 深 度 探 索 改變數(shù)據(jù)成員,但不改變對象狀態(tài) C++語言程序設計 清華大學 鄭莉 常成員函數(shù)的聲明原則 ?在原則上,應當將 getLen聲明為常成員函數(shù),但由于修改了數(shù)據(jù)成員的值,語言規(guī)則不允許 ?怎么辦?使用 mutable關鍵字 – mutable關鍵字使得被修飾的成員對象無視“常對象的成員對象被視為常對象”這一語言原則 ? Mutable須慎用 61 深 度 探 索 C++語言程序設計 清華大學 鄭莉 代碼的編譯連接與執(zhí)行 ? 編譯:源文件 ?目標文件 – 源文件的函數(shù)代碼 ?目標文件的代碼段 – 源文件的靜態(tài)對象 ?目標文件的數(shù)據(jù)段 ? 分為初始化的數(shù)據(jù)段和未初始化的數(shù)據(jù)段 – 符號表:將靜態(tài)對象與函數(shù)的名字與地址關聯(lián) – 重定位記錄表:將代碼中需用到的地址與符號表關聯(lián) ? 連接 – 將各段合并 – 將符號表合并 – 根據(jù)重定位記錄表,確定代碼中用到的全局地址 62 深 度 探 索 C++語言程序設計 清華大學 鄭莉 代碼的編譯連接與執(zhí)行 ? 代碼的執(zhí)行 – 操作系統(tǒng)首先將文件從磁盤讀入,初始化各段 ——一些靜態(tài)數(shù)據(jù)就在此時被初始化 – 從引導代碼開始執(zhí)行,引導代碼啟動 main,main返回后,引導代碼會通知操作系統(tǒng)程序結束 ? 為什么只有靜態(tài)對象需要在目標文件中保存信息? – 連接器負責為靜態(tài)對象分配唯一地址,而其它對象都是相對尋址 ? 為什么類的信息不存在于目標文件中? – 類 的“解構” 63 深 度 探 索 C++語言程序設計 清華大學 鄭莉 64 小結與復習建議 ? 主要內容 – 作用域與可見性、對象的生存期、數(shù)據(jù)的共享與保護、友元、編譯預處理命令、多文件結構和工程 ? 達到的目標 – 深入理解程序的結構、模塊間的關系、數(shù)據(jù)共享。 len = sqrt(x * x + y * y)。 double Line::getLen() { if (len 0) { double x = () ()。 //Point類的對象 p1,p2 double len。p2) : p1(p1), p2(p2), len(1) { } double getLen()。 59 深 度 探 索 C++語言程序設計 清華大學 鄭莉 常成員函數(shù)的聲明原則 class Line { //Line類的定義 public: //外部接口 Line(const Point amp。 ? 什么是改變對象狀態(tài)? – 改變對象狀態(tài),不簡單地等同于改變成員數(shù)據(jù)的值。 C++語言程序設計 清華大學 鄭莉 57 不使用條件編譯的頭文件 // include include int main() { ? } // include ? // include ? // ? class Point { ? } ? 多文件結構 C++語言程序設計 清華大學 鄭莉 58 使用條件編譯的頭文件 // ifndef HEAD_H define HEAD_H ? class Point { ? } ? endif 多文件結構 C++語言程序設計 清華大學 鄭莉 常成員函數(shù)的聲明原則 ? 適當?shù)貙⒊蓡T函數(shù)聲明為常成員函數(shù),能夠提高代碼質量。 編譯預處理命令 C++語言程序設計 清華大學 鄭莉 55 條件編譯指令 ifndef 標識符 程序段 1 else 程序段 2 endif 如果“標識符”未被定義過,則編譯程序段 1,否則編譯程序段 2。 ? undef – 刪除由 define定義的宏,使之不再起作用。 ? define 宏定義指令 – 定義符號常量,很多情況下已被 const定義語句取代。 } 49 共享數(shù)據(jù)的保護 C++語言程序設計 清華大學 鄭莉 50 編譯預處理命令 ? include 包含指令 – 將一個源文件嵌入到當前源文件中該點處。 cout dist(myp1, myp2) endl。 } int main() { //主函數(shù) const Point myp1(1, 1), myp2(4, 5)。 double y = 。p1, const Point amp。 }。p2)。 } friend float dist(const Point amp。 class Point { //Point類定義 public: //外部接口 Point(int x = 0, int y = 0) : x(x), y(y) { } int getX() { return x。 return 0。 ()。 A::A(int i) : a(i) { } void A::print() { cout a : b endl。 //靜態(tài)常數(shù)據(jù)成員 }。 private: const int a。 class A { public: A(int i)。 //調用 void print() const return 0。 //調用 void print() const R b(20,52)。 } int main() { R a(5,4)。 } void R::print() const { cout r1 。 }。 void print() const。 共享數(shù)據(jù)的保護 C++語言程序設計 清華大學 鄭莉 44 例 57 常成員函數(shù)舉例 includeiostream using namespace std。 – const關鍵字可以被用于參與對重載函數(shù)的區(qū)分 ? 通過常對象只
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1