九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

第3章_1面相對像

上傳人:dfg****19 文檔編號:248484443 上傳時間:2024-10-24 格式:PPT 頁數(shù):36 大?。?16.50KB
收藏 版權(quán)申訴 舉報 下載
第3章_1面相對像_第1頁
第1頁 / 共36頁
第3章_1面相對像_第2頁
第2頁 / 共36頁
第3章_1面相對像_第3頁
第3頁 / 共36頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《第3章_1面相對像》由會員分享,可在線閱讀,更多相關(guān)《第3章_1面相對像(36頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,C+,類與對象,指針,繼承與派生,類成員的進一步使用,多態(tài)性與虛函數(shù),重載,類與對象,類的定義格式,在類中要指定成員的訪問權(quán)限,沒有標明(默認)訪問權(quán)限的成員為私有成員。,在類內(nèi)說明訪問控制屬性的先后順序沒有規(guī)定。,在類體內(nèi)進行數(shù)據(jù)成員定義時,不允許對數(shù)據(jù)成員進行賦值。,當在類體外定義函數(shù)時,在類體內(nèi)應(yīng)由函數(shù)原型說明。,類中的成員不能使用,auto,、,extern,、,register,等關(guān)鍵字進行修飾。,其他類的對象可以作類的成員,但自身類的對象不允許作該類成員。,通常將類的定義部分存放在一個用戶自定義

2、的頭文件中,可方便以后使用。,/,說明部分,Class,public:,private:,protected:,;,/,實現(xiàn)部分,類與對象,類的成員函數(shù),在所定義的成員函數(shù)名之前應(yīng)綴上類名,類名與函數(shù)名之間是作用域運算符“:”。,在定義成員函數(shù)時,對帶參數(shù)的函數(shù),要給出參數(shù)的類型和參數(shù)名。而類內(nèi)對應(yīng)的該函數(shù)原型的形參可以只有類型,不寫參數(shù)名。,函數(shù)的返回類型、形式參數(shù)的類型與類體內(nèi)對應(yīng)函數(shù)原型說明的類型要匹配。,當在類體外定義的成員函數(shù)較為短小,可以定義為內(nèi)聯(lián)函數(shù)的形式,在定義時最前面用關(guān)鍵字,inline,修飾。,類與對象,類成員的訪問控制,公有類型定義了類的外部接口,對類來講,任何來自外部

3、的訪問都要通過外部接口來進行。,私有成員不允許外部程序代碼直接訪問,這樣,私有成員就被隱藏在類中。,保護類型同私有類型的差別是在類的繼承和派生是對派生類的影響不同。,類與對象,對象的聲明與使用,;,point p1,p2,p,.,.,#include,class,Tpoint,private:,int,X,Y;,public:,void,point(int,x,int,y);,int,getX()return,X;,int,getY()return,Y;,void,Move(int,int,);,;,void,Tpoint:point(int,x,int,y),X=x;,Y=y;,void,T

4、point:Move(int,xset,int,yset,),X+=,xset,;,Y+=,yset,;,void main(),Tpoint,D1,D2;,D1.point(10,12);,D2.point(7,12);,D1.Move(4,5);,D2.Move(-2,1);,cout,“x1=”D1.getX()”y1=”D1.getY(),endl,;,cout,“x2=”D2.getX()”y2=”D2.getY(),endl,;,X1=14,y1=17,X2=5,y2=13,類與對象,構(gòu)造函數(shù),C+,語言在創(chuàng)建一個對象時,通過系統(tǒng)自動調(diào)用構(gòu)造函數(shù)對所創(chuàng)建的對象進行初始化。,對象(數(shù)

5、據(jù)成員)的初值通過自動調(diào)用構(gòu)造函數(shù)取得,可以通過賦值或調(diào)用已有的成員函數(shù)來改變它。,注意事項,該函數(shù)的名字與類名相同,構(gòu)造函數(shù)無返回值,因此不允許定義構(gòu)造函數(shù)的返回值類型,其中包括,void,類型。,該函數(shù)可以有一個或多個參數(shù),也可以無參數(shù),無參數(shù)的構(gòu)造函數(shù)稱為默認構(gòu)造函數(shù)。,該函數(shù)通常在創(chuàng)建對象時系統(tǒng)自動調(diào)用。如果類內(nèi)沒有定義構(gòu)造函數(shù),系統(tǒng)會自動定義默認的構(gòu)造函數(shù)。,一個類可以有一個以上的構(gòu)造函數(shù),重載構(gòu)造函數(shù)由其參數(shù)個數(shù)、類型和排列順序區(qū)分。,#include,class set,int,elems100;,int,size;,int,card;,public:,set(int,i=16)

6、,size=I;,if(size16)size=100;,if(size16)size=20;,cout,“size=”size,endl,;,;,void main(),set s1(64),s2(8),s3;,class point,int,x,y,;,public:,point(int,m=0,int n=0),x=m;,y=n;,/,;,void main(),point p1;,point p2(10);,point p3(10,10);,/,class sub,/,public:,sub();,sub(int,i=30);,sub(int,int,);,sub(float,floa

7、t,);,/,;,void main(),sub ob1(10,10);,sub ob2(3.2,3.4);,sub ob3;/,二義,/,類與對象,拷貝構(gòu)造函數(shù),在初始化時調(diào)用,以便將一個已知對象的數(shù)據(jù)成員的值賦值給正在創(chuàng)建的另外一個同類的對象。,只有一個參數(shù),并且是對某一個對象的引用,(,&,),#include,class point,private:,int,X,Y;,public:,point(int,xx=0,int,yy,=0),X=xx;,Y=,yy,;,point(point,int,getX()return,X;,int,getY()return,Y;,point:poin

8、t(point,&p),X=,p.X,;,Y=,p.Y,;,void,main(void,),point A(11,22);,point B(A);,cout,B.getX,(),endl,;,void,f(point,p),cout,p.getY,(),endl,;,void main(),point A(22,23);,f(A,);,void g(),point A(55,66);,return A;,void main(),out,g().getX,(),endl,;,類與對象,析構(gòu)函數(shù),析構(gòu)函數(shù)的功能是用來釋放所創(chuàng)建的對象,主要用來完成對象被刪除前的一些清理工作。,析構(gòu)函數(shù)的名字與類名

9、相同,與構(gòu)造函數(shù)的區(qū)別是名字前面加一個符號“,”,,表明它與構(gòu)造函數(shù)的功能相反。析構(gòu)函數(shù)也沒有函數(shù)返回類型。,#include,class demo,private:,int,m;,int,n;,public:,demo(int,x,int,y),m=x;,n=y;,cout,“constructor function is called here,”m“,”n,endl,;,demo(),cout,“Destructor function is called here,”m“,”n,endl,;,;,void main(),demo A(3,5);,for(,int,i=1;i3;i+),d

10、emo,B(i,*3,i*4);,cout,“,程序執(zhí)行完畢!,”,endl,;,Constructor function is called here,3,5,Constructor function is called here,3,4,Destructor function is called here,3,4,Constructor function is called here,6,8,Destructor function is called here,6,8,程序執(zhí)行完畢!,Destructor function is called here,3,5,類與對象,對象的生存期,全局

11、對象,全局對象是被定義在一個文件中,而它的作用域是在包含該文件的整個程序中。其缺點是安全性較差,因為在整個程序的各個文件中都可以改變它。,全局對象定義在函數(shù)體外,定義時不加修飾符。在某個文件中定義的全局對象,在其他文件中引用前應(yīng)該說明,在說明時,要在前面加修飾字符,extern,。,局部對象,靜態(tài)對象,內(nèi)部靜態(tài)對象,定義在函數(shù)體或程序塊內(nèi)的靜態(tài)對象稱為內(nèi)部靜態(tài)對象,它的作用域為定義它的函數(shù)體或程序塊內(nèi),與局部對象相同;,外部靜態(tài)對象,定義在函數(shù)體外的靜態(tài)對象稱為外部靜態(tài)對象,它的作用域是從定義時起直到該文件結(jié)束。,外部靜態(tài)對象的作用域是文件級的,而全局對象的作用域是程序級的,靜態(tài)對象,存在內(nèi)存

12、的靜態(tài)工作區(qū)。,static,(,),類與對象,類的作用域,類的作用域是介于文件域和函數(shù)域之間的作用域。,類作用域中定義的數(shù)據(jù)成員不能使用,register,、,extern,等修飾,類中定義的成員函數(shù)也不能用,extern,修飾。,類的成員函數(shù)內(nèi)出現(xiàn)了該類的其他成員,該成員函數(shù)具有類的作用域;,使用類域作用符限定的成員具有類作用域;,在引用對象的成員時,該成員具有類作用域。,對于生存期相同的對象,先創(chuàng)建的對象后釋放,后創(chuàng)建的對象先釋放。,#include,class demo,private:,int,m;,int,n;,public:,demo(int,x,int,y),m=x;,n=y;

13、,cout,“,構(gòu)造函數(shù)被調(diào)用,m=”m“,n=”n,endl,;,demo();,void print();,;,void,demo:print,(),cout,“,成員函數(shù),print(),被調(diào)用:,m,=”m“,n=”n,endl,;,demo:demo,(),cout,“,析構(gòu)函數(shù)被調(diào)用,m,=”m“,n=”n,endl,;,void function1(),demo D1(1,1);,static demo D2(2,2);,cout,“,在函數(shù),function1(),中調(diào)用!,n,”;,demo D3(3,3);,static demo D4(4,4);,void main(),

14、demo D5(5,5);,cout,“,在,main(),函數(shù)中,調(diào)用函數(shù),function1(),之前!,”,endl,;,function1();,cout,“,在,main(),函數(shù)中,調(diào)用函數(shù),function1(),之后!,”,m=3,n=3,構(gòu)造函數(shù)被調(diào)用,-m=4,n=4,構(gòu)造函數(shù)被調(diào)用,-m=5,n=5,在,main(),函數(shù)中,調(diào)用函數(shù),function1(),之前!,構(gòu)造函數(shù)被調(diào)用,-m=1,n=1,構(gòu)造函數(shù)被調(diào)用,-m=2,n=2,構(gòu)造函數(shù)被調(diào)用,-m=5,n=5,在函數(shù),function1(),中調(diào)用!,析造函數(shù)被調(diào)用,-m=1,n=1,在,main(),函數(shù)中,調(diào)用

15、函數(shù),function1(),之后!,成員函數(shù),print(),被調(diào)用:,m=5,n=5,析造函數(shù)被調(diào)用,-m=5,n=5,析造函數(shù)被調(diào)用,-m=2,n=2,析造函數(shù)被調(diào)用,-m=4,n=4,析造函數(shù)被調(diào)用,-m=3,n=3,指針,對象指針和,this,指針,對象數(shù)組和對象指針數(shù)組,對象引用,堆對象,Const,特性,漸增式軟件開發(fā),類組合,指針,對象指針的說明和使用,*,*,-,-(),或,(*).,(*).(),#include,using namespace std;,class Ch42class,int,n;,public:,Ch42class(int,x)n,=x;,Ch42cla

16、ss()n=0;,void copy(Ch42class*,ch,),n=,ch,-n;,void print(),cout,“n=”nprint();,n=5,N=2,指針,this,指針,this,指針是由系統(tǒng)在編譯時自動產(chǎn)生一個指向?qū)ο笞陨淼闹羔槪攲ο笳{(diào)用一個成員函數(shù)時,會把,this,指針作為一個隱含參數(shù)傳遞給成員函數(shù)。成員函數(shù)接收到該指針后,就可以利用該指針來回訪對象的數(shù)據(jù)成員。,This,指針是屬于對象的,它的類型與對象的類型是一致的。,This,指針通常供系統(tǒng)用于判斷成員函數(shù)所使用的到底是哪一個數(shù)據(jù)成員副本。但是,當需要在一個成員函數(shù)內(nèi)標識被該成員函數(shù)操作的對象時,就需要顯示使用,this,指針。,#include,using namespace std;,class Ch44class,int,n;,public:,Ch44class(int,x)n,=x;,Ch44class()n=0;,void copy(ch44Class*,ch,),if(this!=,ch,),this-n=,ch,-n;,void print(),cout,“n=”n,endl,;,Ch4

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!