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

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計c語言二ppt-資料下載頁

2025-01-19 11:39本頁面
  

【正文】 ” 、 “ 分為 …… 部分 ” 等都是聚集關(guān)系。一條直線段有兩個端點,這是聚集的一個例子。 ? 組合是一種簡單的聚集形式,但是它具有更強的擁有關(guān)系;整體擁有各個部分,整體與部分共存,如果整體不存在了,那么部分也不存在了。 ? 例如,我們打開一個窗口,它就由標題、外框和顯示區(qū)所組成。在 UML中,聚集表示空心菱形,組合表示為實心菱形。 圖 說明了怎樣表示類的聚集和組合。 109 圖 聚集和組合 110 ( 4 )繼承關(guān)系-一泛化 ? 類之間的繼承關(guān)系在 UML 中稱為泛化 , 使用帶有三角形標識的直線段表示這種繼承關(guān)系 , 三角的一個尖指向父類 , 對邊上的線指向子類 。 ? 圖 說明了泛化關(guān)系 。 子類 1 說明了單繼承 , 子類 2 說明了多繼承 。 圖 泛化關(guān)系 111 3 注釋 ? UML中的注釋是一種最重要的能夠獨立存在的修飾符號 。 ? 注釋是附加在元素或元素集上用來表示說明或注釋的圖形符號 。 ? 用注釋可以為模型附加一些諸如說明 、 評述和注解等的信息 。 ? 在 UML 圖形上 , 注釋表示為帶有褶角的矩形 ,然后用虛線連接到 UML的其他元素上 , 它是一種用于在圖中附加文字注釋的機制 。 112 【例 】 帶有注釋的 Line類和 Point 類關(guān)系的 UML描述,如圖 。 /* */ class Point //Point類聲明 { public: Point(int xx=0,int yy=0)。 Point(Point amp。p)。 int GetX()。 int GETY()。 private: int X,Y。 }。 class Line //Line類聲明 { public: Line(Point xpl,Point xp2)。 Line(Line amp。)。 double GetLen()。 private: Point pl,p2。 //Point類對象 p1,p2 double len。 }。 113 圖 帶有注釋的 Line類和 Point類的關(guān)系 114 本章小結(jié) 1 類與對象 ? 類是用戶聲明的一種抽象的數(shù)據(jù)類型 。 對象是類的一個實例 。 在 C++中可以用兩種方法定義對象: ( 1) 在聲明類的同時 , 直接定義對象 , 即在聲明類的右花括號 , “ }” 后 , 直接寫出屬于該類的對象名表 。 這時定義的對象是一個全局對象 。 ( 2) 聲明了類之后 , 在使用時再定義對象 。 這時定義的對象是一個局部對象 , 建議使用這種方法來定義對象 。 115 2 類成員的訪問權(quán)限 ? 按訪問權(quán)限劃分 , 數(shù)據(jù)成員和成員函數(shù)可分為 3種 , 分別是公有數(shù)據(jù)成員與成員函數(shù) 、 保護公有數(shù)據(jù)成員與成員函數(shù) , 以及私有數(shù)據(jù)成員與成員函數(shù) 。 ? 一般情況下 , 一個類的數(shù)據(jù)成員應(yīng)該聲明為私有成員 ( 或保護成員 ) , 這樣 , 使數(shù)據(jù)得到有效的保護;成員函數(shù)聲明為公有成員 , 是類與外界的接口 。 116 3 構(gòu)造函數(shù)與析構(gòu)函數(shù) (1) 構(gòu)造函數(shù) 。 ? 構(gòu)造函數(shù)是一種特殊的成員函數(shù) , 它主要用于為對象分配空間 , 進行初始化 。 構(gòu)造函數(shù)不能像其他成員函數(shù)那樣被顯式地調(diào)用 , 它是在定義對象的同時被調(diào)用的 。 ? 在實際應(yīng)用中 , 如果沒有給類定義構(gòu)造函數(shù) , 則編譯系統(tǒng)自動地生成一個缺省的構(gòu)造函數(shù) 。 ? 在 C++中有多種構(gòu)造函數(shù) , 如缺省參數(shù)的構(gòu)造函數(shù) 、 拷貝構(gòu)造函數(shù) 、 缺省的構(gòu)造函數(shù)等 , 它們有不同的特點和用途 。 117 ( 2) 析構(gòu)函數(shù) 。 ? 析構(gòu)函數(shù)也是一種特殊的成員函數(shù) 。 ? 它執(zhí)行與構(gòu)造函數(shù)相反的操作 , 通常用于撤銷對象時的一些清理任務(wù) , 如釋放分配給對象的內(nèi)存空間等 。 ? 析構(gòu)函數(shù)同構(gòu)造函數(shù)一樣 , 也是類的一個特殊成員函數(shù) ,其函數(shù)名稱是在類名的前面加上 “ ~ “ 。 ? 析構(gòu)函數(shù)沒有返回值和參數(shù) , 不能隨意調(diào)用 , 也沒有重載 , 只是在類對象生存期結(jié)束時 , 系統(tǒng)自動調(diào)用 。 118 4 淺拷貝與深拷貝 ? 所謂淺拷貝 , 就是由缺省的拷貝構(gòu)造函數(shù)所實現(xiàn)的數(shù)據(jù)成員逐一賦值 。 ? 若類中含有指針類型的數(shù)據(jù) , 這種方法將會產(chǎn)生錯誤 。 ? 為了解決淺拷貝出現(xiàn)的錯誤 , 必須顯式地定義一個自己的拷貝構(gòu)造函數(shù) , 使之不但拷貝數(shù)據(jù)成員 , 而且為對象分配各自的內(nèi)存空間 , 這就是所謂的深拷貝 。 119 5 類圖的 UML表示 ? 隨著應(yīng)用系統(tǒng)的面向?qū)ο蠓治雠c設(shè)計的建模表示方法和建模過程方法的不斷豐富和完善 , UML稱為進行面向?qū)ο笙到y(tǒng)建模的業(yè)界標準 。 ? 在系統(tǒng)分析和設(shè)計時 , UML作用非常重要 , 其中的類圖具有充分強大的表達能力和豐富的語義 ,是建模時非常重要的一個圖 。 120 第二部分 面向?qū)ο蟮某绦蛟O(shè)計 第 3章 類和對象 (一 ) 第 4章 類和對象 (二 ) 第 5章 繼承和派生 第 6章 虛函數(shù)與多態(tài)性 第 7章 運算符重載 第 8章 模板 第 9章 標準模板庫 STL 第 10章 C++語言的輸入和輸出 121 第 4章 類和對象 (二 ) 本章要點: ? 對象數(shù)組與對象指針。 ? 類的靜態(tài)成員:靜態(tài)數(shù)據(jù)成員與靜態(tài)成員函數(shù)。 ? 友元有 3種形式:友元函數(shù)、友元成員和友元類。 ? 常對象:常數(shù)據(jù)成員與常成員函數(shù)。 122 自引用指針 this ? 對象的自身引用是面向?qū)ο蟪绦蛟O(shè)計語言中特有的 、 十分重要的一種機制 。 在 C++中 , 為這種機制設(shè)立了專門的表示: this指針變量 。 ? 在類的每一個成員函數(shù)的形參表中都有一個隱含的指針變量 this, 該指針變量的類型就是成員函數(shù)所屬類的類型 。 ? 當程序中調(diào)用類的成員函數(shù)時 , this指針變量被自動初始化為發(fā)出函數(shù)調(diào)用的對象的地址 。 123 【例 】 this指針的使用。 /* */ include iostream using namespace std。 class Sample { int x, y。 public: Sample(int a=0, int b=0) { x=a。 y=b。 } void print() { coutxendl。 coutyendl。 } }。 int main() { Sample obj(5,10)。 ()。 return 0。 } 成員函數(shù)中隱含著一個指針 this, 它指向調(diào)用成員函數(shù)的對象,在成員函數(shù)中可以直接使用該指針, 124 上述程序可用 this指針顯示改寫為完全等價的形式: include iostream using namespace std。 class Sample { int x, y。 public: Sample(int a=0, int b=0) { thisx=a。 //在此例中 this=amp。obj thisy=b。 } void print() { coutthisxendl。 //在此例中 this=amp。obj coutthisyendl。 } }。 int main() { Sample obj(5,10)。 ()。 return 0。 } 125 ? 那么何時使用 this指針呢 ? ? 編寫代碼時主要有兩種場合要求盡可能使用this指針 , 一種是為了區(qū)分成員和非成員 。 例如: void Sample::fun(int x) { thisx=x。 } 126 另一種使用 this指針的應(yīng)用是一個類的方法需要返回當前對象的引用 。 例如: class Sample { private: int x。 char* ptr。 public: Sample amp。 Set(int i, char *p)。 //.. }。 Sampleamp。 Sample::Set(int i, char *p)。 { x=i。 ptr=p。 return *this。 } 方法 Set返回當前對象的引用 , *this就是當前對象 。 127 對象數(shù)組與對象指針 ? 所謂 對象數(shù)組 是指每一數(shù)組元素都是對象的數(shù)組 , 也就是說 , 若一個類有若干個對象 , 我們把這一系列的對象用一個數(shù)組來存放 。 ? 對象數(shù)組的元素是對象 , 不僅具有數(shù)據(jù)成員 ,而且還有函數(shù)成員 。 定義對象數(shù)組時 , 系統(tǒng)為每個數(shù)組元素對象調(diào)用一次構(gòu)造函數(shù)以構(gòu)造這些元素 。 128 ? 對象數(shù)組的定義的格式為 : 類名 數(shù)組名 [數(shù)組大小 ]; 例如: Student stu[3]。 定義了類 Student 的對象數(shù)組 stu。 系統(tǒng)調(diào)用無參構(gòu)造函數(shù) 3次。 129 ? 如果類 Student 有 2 個 數(shù) 據(jù) 成 員 姓 名 ( char name[10]) 、 年齡 (int age), 那么在定義對象數(shù)組時也可以實現(xiàn)初始化 。 例如: Student stu[3]={ Student(“zhao”,22), Student(“qian”,20), Student(“sun”, 8,90) }。 ? 在建立對象數(shù)組時 , 分別調(diào)用構(gòu)造函數(shù) , 對每個元素初始化 。 ? 與基本數(shù)據(jù)類型的數(shù)組一樣 , 在使用對象數(shù)組時也只能訪問單個數(shù)組元素 , 也就是一個對象 , 通過這個對象 ,也可以訪問到它的公有成員 , 一般形式是: 數(shù)組名 [ 下標 ] . 成員名 130 【例 】對象數(shù)組的應(yīng)用。 /* */ include iostream using namespace std。 class Sample { private: int x。 public: void Set_x(int n) { x=n。 } int Get_x() { return x。 } }。 int main() { Sample obj[4]。 int i。 for(i=0。 i4。 i++) obj[i].Set_x(i)。 for(i=0。 i4。 i++) coutobj[i].Get_x()” ”。 coutendl。 return 0。 } 131 0 1 2 3 程序的運行結(jié)果為: 132 堆對象 ? 使用 new運算符動態(tài)分配的對象屬于堆對象 , 其所占存儲空間被分配在堆區(qū) 。 ? 利用 new建立對象會自動調(diào)用構(gòu)造函數(shù) , 利用delete刪除對象會自動調(diào)用析構(gòu)函數(shù) 。 133 【例 】堆對象的建立與刪除。 /* */ include iostream using namespace std。 class Date //定義日期類 Date { private: int month, day, year。 public: Date(int m, int d, int y)。 //聲明構(gòu)造函數(shù) }。 Date::Date(int m, int d, int y) //定義構(gòu)造函數(shù) { if (m0 amp。amp。 m13) month=m。 if (d0 amp。amp。 d32) day=d。 if (y0 amp。amp。 y3000) year=y。 } int main() { Date *pd。 //定義一個指向 Date類的對象的指針變量 pd pd=new Date(1,1,2022)。 //pd指向新建 Date類的對象的起始地址 //…… delete(pd)。 //釋放 pd所指向的內(nèi)存空間 return 0。 } 134 對象指針 ? 指向類對象的指針稱為對象指針。 ? 聲明指向類對象的指針變量的一般形式為 類名 *對象指針名 。 ? 用指針引用單個對象成員的方法與其他基本類型指針相同 , 可以有兩種形式: 指針變量名 成員名 或 ( *指針變量名 ) .成員名 ? 可以通過對象指針訪問對象和對象的成員 。
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1