




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、長(zhǎng) 春 工 業(yè) 大 學(xué) 課 程 教 案講 稿 用 紙講授內(nèi)容教學(xué)設(shè)計(jì)備注第 4 章 類(lèi)和對(duì)象學(xué)習(xí)目的把握類(lèi)的基礎(chǔ)學(xué)問(wèn) 把握如何使用對(duì)象 把握構(gòu)造函數(shù)和析構(gòu)函數(shù)把握內(nèi)聯(lián)成員函數(shù) 把握類(lèi)的組合學(xué)習(xí)要點(diǎn)類(lèi)的特點(diǎn)、類(lèi)的聲明、類(lèi)作用域、類(lèi)成員函數(shù)設(shè)計(jì) 類(lèi)成員的拜訪權(quán)限 對(duì)象的定義方法 對(duì)象的數(shù)據(jù)成員拜訪方法 對(duì)象的成員函數(shù)調(diào)用方法 類(lèi)對(duì)象的儲(chǔ)備空間 構(gòu)造函數(shù)特點(diǎn)及設(shè)計(jì)方法 析構(gòu)函數(shù)特點(diǎn)及設(shè)計(jì)方法對(duì)象的生存期 對(duì)象的淺復(fù)制與深復(fù)制 類(lèi)的組合4.1 類(lèi)4.1.1 類(lèi)的聲明類(lèi)是一種復(fù)雜的數(shù)據(jù)類(lèi)型,它是將不同類(lèi)型的數(shù)據(jù)和與這些數(shù)據(jù)相關(guān) 的運(yùn)算封裝在一起的集合體;類(lèi)將一些數(shù)據(jù)及與數(shù)據(jù)相關(guān)的函數(shù)封裝在一7 起,使類(lèi)
2、中的數(shù)據(jù)得到很好的 類(lèi)的定義格式:“愛(ài)護(hù)”;在大型程序中不會(huì)被隨便修改;class 類(lèi)名 /類(lèi)界面private : 數(shù)據(jù)成員和成員函數(shù);public : 數(shù)據(jù)成員和成員函數(shù);protected: 數(shù)據(jù)成員和成員函數(shù);1、類(lèi)具有封裝性,并且類(lèi)只是定義了 一種結(jié)構(gòu)(樣板) ,所以類(lèi)中的任何成 員數(shù)據(jù)均不能使用 關(guān)鍵字 extern,auto 或 register 限定其 儲(chǔ)備類(lèi)型;; 2、在定義類(lèi)時(shí),只 是定義了一種導(dǎo)出 的數(shù)據(jù)類(lèi)型,并不 為 類(lèi) 分 配 存 儲(chǔ) 空 間;所以,在定義 類(lèi) 中 的 數(shù) 據(jù) 成 員 時(shí),不能對(duì)其初始 化;如:class Test 各個(gè)成員函數(shù)的實(shí)現(xiàn);/類(lèi)實(shí)現(xiàn)用關(guān)鍵字
3、 priviate 限定的成員稱(chēng)為私有成員,對(duì)私有成員限定在該類(lèi) 的內(nèi)部使用,即只答應(yīng)當(dāng)類(lèi)中的成員函數(shù)使用私有的數(shù)據(jù)成員,對(duì)于私有 的成員函數(shù),只能被該類(lèi)內(nèi)的成員函數(shù)調(diào)用;類(lèi)就相當(dāng)于私有成員的作用域;假如未加說(shuō)明,類(lèi)中成員默認(rèn)的拜訪權(quán)限是private,即私有的;用關(guān)鍵字 public 限定的成員稱(chēng)為公有成員,公有成員的數(shù)據(jù)或函數(shù)不 受類(lèi)的限制,可以在類(lèi)內(nèi)或類(lèi)外自由使用;對(duì)類(lèi)而言是透亮的;用關(guān)鍵字 protected所限定的成員稱(chēng)為愛(ài)護(hù)成員, 只答應(yīng)在類(lèi)內(nèi)及該類(lèi)int x=5,y=6; /是不答應(yīng)的extern float x; /是不答應(yīng)的 的派生類(lèi)中使用愛(ài)護(hù)的數(shù)據(jù)或函數(shù);即愛(ài)護(hù)成員的作用域
4、是該類(lèi)及該類(lèi)的派生類(lèi);類(lèi)內(nèi)函數(shù)私有成員公有成員愛(ài)護(hù)成員可以調(diào)用可以調(diào)用可以調(diào)用類(lèi)外函數(shù)不行調(diào)用可以調(diào)用不行調(diào)用私有函數(shù)公有函數(shù)愛(ài)護(hù)函數(shù)類(lèi)內(nèi)函數(shù)可以調(diào)用可以調(diào)用可以調(diào)用類(lèi)外函數(shù)不行調(diào)用可以調(diào)用不行調(diào)用每一個(gè)限制詞 private 等在類(lèi)體中可使用多次;一旦使用了限制詞,該限制詞始終有效,直到下一個(gè)限制詞開(kāi)頭為止;8 4.1.2 成員函數(shù) 類(lèi)中的成員函數(shù)可類(lèi)的成員函數(shù)描述的是類(lèi)的行為或操作;假如在類(lèi)的內(nèi)部定義成員函數(shù)的詳細(xì)實(shí)現(xiàn),就該成員函數(shù)為內(nèi)聯(lián)成員以調(diào)用類(lèi)外定義的 一般函數(shù);函數(shù);在類(lèi)外部實(shí)現(xiàn)的成員函數(shù)中,對(duì)編譯提出內(nèi)聯(lián)要求,成員函數(shù)定義 前面加 inline;假如在類(lèi)的外部定義成員函數(shù)的詳細(xì)實(shí)
5、現(xiàn),函數(shù)的原型聲明在類(lèi)的主體中,原型說(shuō)明白函數(shù)的參數(shù)表和返回值類(lèi)型,而函數(shù)的詳細(xì)實(shí)現(xiàn)寫(xiě)在類(lèi) 聲明之外;在類(lèi)的外部定義成員函數(shù)的語(yǔ)法形式為:返回值類(lèi)型 類(lèi)名 :成員函數(shù)名 參數(shù)表 函數(shù)體 4.2 對(duì)象在定義類(lèi)時(shí),只是定義了一種數(shù)據(jù)類(lèi)型,即說(shuō)明程序中可能會(huì)顯現(xiàn)該 類(lèi)型的數(shù)據(jù),并不為類(lèi)安排儲(chǔ)備空間;只有在定義了屬于類(lèi)的變量后,系 統(tǒng)才會(huì)為類(lèi)的變量安排空間;類(lèi)的變量我們稱(chēng)之為對(duì)象;對(duì)象是類(lèi)的實(shí)例,定義對(duì)象之前,肯定要 先說(shuō)明該對(duì)象的類(lèi);不同對(duì)象占據(jù)內(nèi)存中的不同區(qū)域,它們所儲(chǔ)存的數(shù)據(jù) 各不相同,但對(duì)成員數(shù)據(jù)進(jìn)行操作的成員函數(shù)的程序代碼均是一樣的;4.2.1 對(duì)象的定義格式類(lèi)名 對(duì)象名表;在建立對(duì)象時(shí),只
6、為對(duì)象安排用于儲(chǔ)存數(shù)據(jù)成員的內(nèi)存空間,而成員 函數(shù)的代碼為該類(lèi)的每一個(gè)對(duì)象所共享;定義一個(gè)對(duì)象和定義一個(gè)一般變量相同;定義變量時(shí)要安排儲(chǔ)備空間,同樣,定義一個(gè)對(duì)象時(shí)要安排儲(chǔ)備空 間,一個(gè)對(duì)象所占的內(nèi)存空間是類(lèi)的數(shù)據(jù)成員所占的空間總和;類(lèi) 的成員函數(shù)存放在代碼區(qū),不占內(nèi)存空間;9 4.2.2 對(duì)象的使用一個(gè)對(duì)象的成員就是該對(duì)象的類(lèi)所定義的成員,有數(shù)據(jù)成員和成員函 數(shù),引用時(shí)同結(jié)構(gòu)體變量類(lèi)似,用“.”運(yùn)算符;用成員挑選運(yùn)算符 “.”只能拜訪對(duì)象的公有成員, 而不能拜訪對(duì)象的私 有成員或愛(ài)護(hù)成員;如要拜訪對(duì)象的私有的數(shù)據(jù)成員,只能通過(guò)對(duì)象的公 有成員函數(shù)來(lái)獵取;調(diào)用成員形式:對(duì)象名 .成員 ; 4.
7、2.3 對(duì)象的儲(chǔ)備空間假如類(lèi)中沒(méi)有任何C+只為每一個(gè)對(duì)象的數(shù)據(jù)成員安排內(nèi)存空間,類(lèi)中的全部成員函數(shù) 只生成一個(gè)副本,而該類(lèi)的每個(gè)對(duì)象執(zhí)行相同的函數(shù)成員副本;類(lèi)的全部數(shù)據(jù)成員, size為1,確保不同對(duì)象有 不同的地址;數(shù)據(jù)儲(chǔ)備對(duì)齊方式 就以兩兩之間的最成員函數(shù)均放在公用區(qū)中(只儲(chǔ)存一份),每個(gè)函數(shù)代碼有一個(gè)地址,類(lèi)的每個(gè)對(duì)象中只存放自己的數(shù)據(jù)成員值和指向公共區(qū)中對(duì)應(yīng)函數(shù)的地址,即類(lèi)的成員函數(shù)是共享的;大字節(jié)對(duì)齊,比如 char 與 int 以 4 字4.2.4例題節(jié)對(duì)齊,占用了一個(gè) 8 字節(jié)空間;1.設(shè)計(jì)一個(gè)日期類(lèi) Date,包括年、月、日等私有數(shù)據(jù)成員,要求實(shí)現(xiàn)對(duì)日 期的設(shè)置及輸出顯示; (
8、顯示格式為“ 月 -日-年” )#include using namespace std; class Date public: void setDateint y,int m,int d; void showDate; private: int year,month,day; ; void Date:setDateint y,int m,int d year=y; month=m; day=d; 10 void Date:showDate coutmonth-day-yearendl; int main Date D; int year,month,day; coutyearmonthday
9、; D.setDateyear,month,day; D.showDate; return 0; 2. 設(shè)計(jì)一個(gè)同學(xué)類(lèi) Student ,包括同學(xué)的學(xué)號(hào),姓名,年齡,家庭住址信息,要求設(shè)置并輸出這些同學(xué)的信息;#include #include using namespace std; class Student public: void setStudentint n,char na,int a,char addr; void showStudent; private: int no; char name20; int age; char address50; ; void Student:
10、setStudentint n,char na,int a,char addr no=n; strcpyname,na; age=a; strcpyaddress,addr; void Student:showStudent 11 coutno name age addressendl; int main Student std; std.setStudent1,Mary,20, 吉林省長(zhǎng)春市 ; std.showStudent; return 0; 4.3 構(gòu)造函數(shù)和析構(gòu)函數(shù)4.3.1 構(gòu)造函數(shù)定義在定義一個(gè)對(duì)象的時(shí)候進(jìn)行的數(shù)據(jù)成員設(shè)置,稱(chēng)為對(duì)象的初始化;構(gòu)造函數(shù)的作用就是在對(duì)象被創(chuàng)建時(shí)利用
11、特定的值構(gòu)造對(duì)象,將對(duì)象初始化為一個(gè)特定的狀態(tài);構(gòu)造函數(shù)在對(duì)象被創(chuàng)建的時(shí)候?qū)⒈蛔詣?dòng)調(diào)用;如 果程序中未聲明,就系統(tǒng)自動(dòng)產(chǎn)生出一個(gè)隱含的參數(shù)列表為空的構(gòu)造函數(shù);定義構(gòu)造函數(shù)的一般形式為:class 類(lèi)名 public: 類(lèi)名(形參表) ; /構(gòu)造函數(shù)的原型 /類(lèi)的其它成員 ; 類(lèi)名 :類(lèi)名(形參表) /構(gòu)造函數(shù)的實(shí)現(xiàn) /函數(shù)體 類(lèi)的構(gòu)造函數(shù)承擔(dān)對(duì)象的初始化工作,它旨在使對(duì)象初值有意義;對(duì)構(gòu)造函數(shù),說(shuō)明以下幾點(diǎn):1. 構(gòu)造函數(shù)的函數(shù)名必需與類(lèi)名相同; 構(gòu)造函數(shù)的主要作用是完成初始化 對(duì)象的數(shù)據(jù)成員以及其它的初始化工作;2. 在定義構(gòu)造函數(shù)時(shí),不能指定函數(shù)返回值的類(lèi)型,也不能指定為 void 類(lèi)型;
12、3. 在類(lèi)的內(nèi)部定義的構(gòu)造函數(shù)是內(nèi)聯(lián)函數(shù);構(gòu)造函數(shù)可以帶默認(rèn)形參值,也可以重載;一個(gè)類(lèi)可以定義如干個(gè)構(gòu)造函數(shù);當(dāng)定義多個(gè)構(gòu)造函數(shù)時(shí),12 必需滿意函數(shù)重載的原就;類(lèi)對(duì)象創(chuàng)建時(shí),構(gòu)造函數(shù)會(huì)自動(dòng)執(zhí)行;由于它 們沒(méi)有類(lèi)型,不能像其他函數(shù)那樣進(jìn)行調(diào)用;當(dāng)類(lèi)對(duì)象說(shuō)明時(shí)調(diào)用哪一個(gè) 構(gòu)造函數(shù)取決于傳遞給它的參數(shù)類(lèi)型;4. 如定義的類(lèi)要說(shuō)明該類(lèi)的對(duì)象時(shí),構(gòu)造函數(shù)必需是公有的成員函數(shù);如果定義的類(lèi)僅用于派生其它類(lèi)時(shí),就可將構(gòu)造函數(shù)定義為愛(ài)護(hù)的成員函 數(shù);由于構(gòu)造函數(shù)屬于類(lèi)的成員函數(shù),它對(duì)私有數(shù)據(jù)成員、愛(ài)護(hù)的數(shù)據(jù)成 員和公有的數(shù)據(jù)成員均能進(jìn)行初始化;4.3.2 調(diào)用構(gòu)造函數(shù)當(dāng)定義類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)會(huì)自動(dòng)執(zhí)行;1.
13、調(diào)用默認(rèn)構(gòu)造函數(shù)調(diào)用默認(rèn)構(gòu)造函數(shù)的語(yǔ)法:類(lèi)名類(lèi)對(duì)象名;在程序中定義一個(gè)對(duì)象而沒(méi)有指明初始化時(shí),編譯器便按默認(rèn)構(gòu)造函 數(shù)來(lái)初始化該對(duì)象;默認(rèn)構(gòu)造函數(shù)并不對(duì)所產(chǎn)生對(duì)象的數(shù)據(jù)成員賦初值;即新產(chǎn)生對(duì)象的 數(shù)據(jù)成員的值是不確定的;關(guān)于默認(rèn)構(gòu)造函數(shù),說(shuō)明以下幾點(diǎn):可以多個(gè)構(gòu)造函數(shù) 帶默認(rèn)參數(shù),但程1、在定義類(lèi)時(shí),只要顯式定義了一個(gè)類(lèi)的構(gòu)造函數(shù),就編譯器就不產(chǎn)生 默認(rèn)構(gòu)造函數(shù);2、全部的對(duì)象在定義時(shí)必需調(diào)用構(gòu)造函數(shù),不存在沒(méi)有構(gòu)造函數(shù)的對(duì)象!3、在類(lèi)中,如定義了沒(méi)有參數(shù)的構(gòu)造函數(shù),或各參數(shù)均有缺省值的構(gòu)造序 中 不 能 使 用 MyClass obj ;這樣 定義對(duì)象,即不能 夠調(diào)用默認(rèn)構(gòu)造函 數(shù);函數(shù)也稱(chēng)
14、為默認(rèn)構(gòu)造函數(shù),默認(rèn)構(gòu)造函數(shù)只能有一個(gè);4、產(chǎn)生對(duì)象時(shí),系統(tǒng)必定要調(diào)用構(gòu)造函數(shù);所以任一對(duì)象的構(gòu)造函數(shù)必須唯獨(dú);2.調(diào)用帶參數(shù)的構(gòu)造函數(shù)假如定義了一個(gè)對(duì) 象并且期望默認(rèn)構(gòu)造函數(shù)被執(zhí)行,在調(diào)用帶參數(shù)的構(gòu)造函數(shù)的語(yǔ)法如下:類(lèi)名 類(lèi)對(duì)象名(參數(shù)表)定義語(yǔ)句中,“ 類(lèi)對(duì) 象名” 后面是不需 要空括號(hào)的;假如參數(shù)表中的參數(shù)可以是變量,也可以是表達(dá)式;3. 一次性對(duì)象創(chuàng)建對(duì)象假如不給出對(duì)象名,也就是說(shuō),直接以類(lèi)名調(diào)用構(gòu)造函數(shù),包含了空括號(hào),編 譯器將會(huì)產(chǎn)生一個(gè) 語(yǔ)法錯(cuò)誤信息;例如“MyClass2 mysa; ” 語(yǔ)句是非 法的;13 就產(chǎn)生一個(gè)無(wú)名對(duì)象;無(wú)名對(duì)象常常在參數(shù)傳遞時(shí)用到;例如:cout Da
15、te2003,12,23; Date2003, 12,23是一個(gè)對(duì)象,該對(duì)象在做了操作后便煙消云散了,所以這種對(duì)象一般用在創(chuàng)建后不需要反復(fù)使用的場(chǎng)合;4. 用構(gòu)造函數(shù)初始化對(duì)象的過(guò)程用構(gòu)造函數(shù)初始化對(duì)象的過(guò)程,實(shí)際上是對(duì)構(gòu)造函數(shù)的調(diào)用過(guò)程;一般按如下步驟進(jìn)行:(1)程序執(zhí)行到定義對(duì)象語(yǔ)句時(shí),系統(tǒng)為對(duì)象安排內(nèi)存空間;(2)系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù),將實(shí)參傳送給形參,執(zhí)行構(gòu)造函數(shù)體 時(shí),將形參值賦給對(duì)象的數(shù)據(jù)成員;完成數(shù)據(jù)成員的初始化工作;4.3.3 復(fù)制構(gòu)造函數(shù)用于將一個(gè)已知對(duì)象的數(shù)據(jù)成員復(fù)制給正在創(chuàng)建的另一個(gè)同類(lèi)的對(duì) 象;格式如下:類(lèi)名:復(fù)制構(gòu)造函數(shù)(類(lèi)名 & 引用名)或 類(lèi)名:復(fù)制構(gòu)造函數(shù)( c
16、onst 類(lèi)名 & 引用名)假如程序員沒(méi)有為類(lèi)聲明拷貝初始化構(gòu)造函數(shù),就編譯器自己生成一 個(gè)隱含的拷貝構(gòu)造函數(shù);這個(gè)構(gòu)造函數(shù)執(zhí)行的功能是:用作為初始值的對(duì)象的每個(gè)數(shù)據(jù)成員的 值,初始化將要建立的對(duì)象的對(duì)應(yīng)數(shù)據(jù)成員;但是,當(dāng)類(lèi)中的數(shù)據(jù)成員中使用new 運(yùn)算符,動(dòng)態(tài)地申請(qǐng)儲(chǔ)備空間進(jìn)行賦初值時(shí),必需在類(lèi)中顯式地定義一個(gè)完成拷貝功能的構(gòu)造函數(shù),以便 正的確現(xiàn)數(shù)據(jù)成員的復(fù)制;拷貝構(gòu)造函數(shù)就是函數(shù)的形參是類(lèi)的對(duì)象的引用的構(gòu)造函數(shù);假如 程序在類(lèi)定義時(shí)沒(méi)有顯式定義拷貝構(gòu)造函數(shù),系統(tǒng)也會(huì)自動(dòng)生成一個(gè)默認(rèn) 的拷貝構(gòu)造函數(shù),把成員值一一復(fù)制;拷貝構(gòu)造函數(shù)與原先的構(gòu)造函數(shù)實(shí) 現(xiàn)了函數(shù)的重載;在以下 3 中情形下,復(fù)
17、制構(gòu)造函數(shù)都會(huì)被調(diào)用:. 當(dāng)用類(lèi)的一個(gè)對(duì)象去初始化該類(lèi)的另一個(gè)對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用拷 貝構(gòu)造函數(shù)實(shí)現(xiàn)拷貝賦值;. 如函數(shù)的形參為類(lèi)對(duì)象,調(diào)用函數(shù)時(shí),實(shí)參賦值給形參,系統(tǒng)自動(dòng) 調(diào)用拷貝構(gòu)造函數(shù);14 . 當(dāng)函數(shù)的返回值是類(lèi)對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù);4.3.4 析構(gòu)函數(shù)C+程序設(shè)計(jì)的一個(gè)原就是:由系統(tǒng)自動(dòng)安排的內(nèi)存空間由系統(tǒng)自動(dòng) 釋放;而手工安排的內(nèi)存空間必需手工是否,否就可能造成內(nèi)存泄漏;人為的動(dòng)態(tài)內(nèi)存釋放工作由析構(gòu)函數(shù)來(lái)完成,它的意義是做關(guān)于對(duì)象 本體失效之前瞬時(shí)的善后工作;這與構(gòu)造函數(shù)的工作正好相反,當(dāng)對(duì)象生 存期終止時(shí),需要調(diào)用析構(gòu)函數(shù),釋放對(duì)象所占的內(nèi)存空間,所以給它取 的名字也是
18、波浪 “”號(hào)加上類(lèi)名,以示與構(gòu)造函數(shù)在功能上的對(duì)應(yīng)關(guān)系;析構(gòu)函數(shù)與構(gòu)造函數(shù)是成對(duì)顯現(xiàn)的;析構(gòu)函數(shù)是在對(duì)象生存期即將終止的時(shí)刻由系統(tǒng)自動(dòng)調(diào)用的;顯式定義析構(gòu)函數(shù)格式為:類(lèi)名:析構(gòu)函數(shù)名 語(yǔ)句; 與析構(gòu)函數(shù)名 中間沒(méi)有空格如在類(lèi)的定義中沒(méi)有顯式地定義析構(gòu)函數(shù)時(shí),系統(tǒng)將自動(dòng)生成和調(diào)用 一個(gè)默認(rèn)析構(gòu)函數(shù),其格式為:默認(rèn)析構(gòu)函數(shù)是一 個(gè)空函數(shù);類(lèi)名:默認(rèn)析構(gòu)函數(shù)名 任何對(duì)象都必需有構(gòu)造函數(shù)和析構(gòu)函數(shù),但在撤消對(duì)象時(shí),要釋放對(duì) 象的數(shù)據(jù)成員用 new 運(yùn)算符安排的動(dòng)態(tài)空間時(shí),必需顯式地定義析構(gòu)函數(shù);析構(gòu)函數(shù)的特點(diǎn)如下:1、析構(gòu)函數(shù)是成員函數(shù),函數(shù)體可寫(xiě)在類(lèi)體內(nèi),也可寫(xiě)在類(lèi)體外;2、析構(gòu)函數(shù)是一個(gè)特別的成員
19、函數(shù),函數(shù)名必需與類(lèi)名相同,并在其前 面加上字符 “ ”,以便和構(gòu)造函數(shù)名相區(qū)分;3、析構(gòu)函數(shù)也是類(lèi)的一個(gè)公有成員函數(shù),不能帶有任何參數(shù),不能有返 回值,不指定函數(shù)類(lèi)型;4、一個(gè)類(lèi)中,只能定義一個(gè)析構(gòu)函數(shù),析構(gòu)函數(shù)不答應(yīng)重載;5、析構(gòu)函數(shù)是在撤消對(duì)象時(shí)由系統(tǒng)自動(dòng)調(diào)用的;在程序的執(zhí)行過(guò)程中,當(dāng)遇到某一對(duì)象的生存期終止時(shí),系統(tǒng)自動(dòng)調(diào) 用析構(gòu)函數(shù),然后再收回為對(duì)象安排的儲(chǔ)備空間;對(duì)象在定義時(shí)自動(dòng)調(diào)用構(gòu)造函數(shù),生存期即將終止時(shí)調(diào)用析構(gòu)函數(shù)!15 4.4 類(lèi)的組合4.4.1 類(lèi)的組合類(lèi)中的成員數(shù)據(jù)是另一個(gè)類(lèi)的對(duì)象;可以在已有抽象的基礎(chǔ)上實(shí)現(xiàn)更 復(fù)雜的抽象;原就:不僅要負(fù)責(zé)對(duì)本類(lèi)中的基本類(lèi)型成員數(shù)據(jù)賦初值
20、,也要對(duì)對(duì)象 成員初始化;聲明形式:類(lèi)名 :類(lèi)名 對(duì)象成員所需的形參,本類(lèi)成員形參 本類(lèi)初始化 類(lèi)組合的構(gòu)造函數(shù)調(diào)用:對(duì)象 1參數(shù) ,對(duì)象 2參數(shù) ,. 構(gòu)造函數(shù)調(diào)用次序:先調(diào)用內(nèi)嵌對(duì)象的構(gòu)造函數(shù)(按內(nèi)嵌時(shí)的聲明順 序,先聲明者先構(gòu)造) ;然后調(diào)用本類(lèi)的構(gòu)造函數(shù); (析構(gòu)函數(shù)的調(diào)用次序相反)初始化列表中未顯現(xiàn)的內(nèi)嵌對(duì)象,用默認(rèn)構(gòu)造函數(shù)(即無(wú)形參的)初 始化 系統(tǒng)自動(dòng)生成的隱含的默認(rèn)構(gòu)造函數(shù)中,內(nèi)嵌對(duì)象全部用默認(rèn)構(gòu)造函 數(shù)初始化4.4.2 前向引用聲明類(lèi)應(yīng)當(dāng)先聲明,后使用 假如需要在某個(gè)類(lèi)的聲明之前,引用該類(lèi),就應(yīng)進(jìn)行前向引用聲明;前向引用聲明只為程序引入一個(gè)標(biāo)識(shí)符,但詳細(xì)聲明在其他地方;使用前
21、向引用聲明雖然可以解決一些問(wèn)題,但它并不是萬(wàn)能的;需要 留意的是,盡管使用了前向引用聲明, 但是在供應(yīng)一個(gè)完整的類(lèi)聲明之前,不能聲明該類(lèi)的對(duì)象,也不能在內(nèi)聯(lián)成員函數(shù)中使用該類(lèi)的對(duì)象;應(yīng)當(dāng)記?。寒?dāng)你使用前向引用聲明時(shí),你只能使用被聲明的符號(hào),而 不能涉及類(lèi)的任何細(xì)節(jié);16 4.5 UML 簡(jiǎn)介UML 語(yǔ)言是一種可視化的的面對(duì)對(duì)象建模語(yǔ)言;UML 有三個(gè)基本的部分 事物( Things)UML 中重要的組成部分, 在模型中屬于最靜態(tài)的部分, 代表概念上的 或物理上的元素 關(guān)系( Relationships)關(guān)系把事物緊密聯(lián)系在一起圖( Diagrams)圖是許多有相相互關(guān)的事物的組UML 中有 4 種類(lèi)型的事物 結(jié)構(gòu)事物( Structural things)動(dòng)作事物( Behavioral things)分組事物( Grouping things)注釋事物( Annotational things)UML 中的關(guān)系 依靠( Dependencies)關(guān)聯(lián)( Association)泛化( Generalization)實(shí)現(xiàn)( Realization)UML 中的 9 種圖 類(lèi)圖( Class diagram)對(duì)象圖( Object diagram)用例圖( Use case diagram)次序圖( Sequence
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度護(hù)士診所牙科護(hù)理聘用合同
- 二零二五年度火鍋加盟店食品安全責(zé)任合同
- 2025年度職業(yè)培訓(xùn)與勞動(dòng)合同一體化服務(wù)協(xié)議
- 2025年度校園食堂智能化管理承包運(yùn)營(yíng)合同
- 水電安裝合同范本 簡(jiǎn)單
- 2025年度生態(tài)修復(fù)與景觀設(shè)計(jì)工程款結(jié)算與生態(tài)補(bǔ)償協(xié)議
- 二零二五年度虛擬貨幣帳戶借用與監(jiān)管協(xié)議
- 2025至2031年中國(guó)棉麻色織襯衣行業(yè)投資前景及策略咨詢研究報(bào)告
- 填料廠家轉(zhuǎn)讓合同范本
- 2025至2030年中國(guó)通信電纜障礙全自動(dòng)測(cè)距儀數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 高速公路改擴(kuò)建工程路基標(biāo)準(zhǔn)化
- 海關(guān)監(jiān)管場(chǎng)所投資建設(shè)項(xiàng)目可行性研究報(bào)告-廣州中撰咨詢
- 六氟化硫(SF6)氣體的管理及充注質(zhì)量檢查表
- 一年級(jí)勞動(dòng)課教案設(shè)計(jì)
- Windows Azure云平臺(tái)基本操作手冊(cè)
- 中南大學(xué)-鋼結(jié)構(gòu)門(mén)式鋼架廠房畢業(yè)設(shè)計(jì)
- 百家姓精品資源課件
- 醫(yī)院感染控制原則
- T∕ASC 17-2021 電動(dòng)汽車(chē)充換電設(shè)施系統(tǒng)設(shè)計(jì)標(biāo)準(zhǔn)
- 水閘設(shè)計(jì)步驟計(jì)算書(shū)(多表)
- 智慧安監(jiān)重大危險(xiǎn)源監(jiān)管平臺(tái)解決方案
評(píng)論
0/150
提交評(píng)論