ch2類和對(duì)象舉例.ppt_第1頁
ch2類和對(duì)象舉例.ppt_第2頁
ch2類和對(duì)象舉例.ppt_第3頁
ch2類和對(duì)象舉例.ppt_第4頁
ch2類和對(duì)象舉例.ppt_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第2章(1) 類與對(duì)象,C+語言程序設(shè)計(jì),2,主要內(nèi)容與學(xué)習(xí)要求,重點(diǎn): 1、掌握類的聲明方法與類的成員函數(shù)的實(shí)現(xiàn) 2、理解并正確定義類成員的訪問權(quán)限 3、掌握類的應(yīng)用:對(duì)象的聲明及使用,類的定義舉例,聲明時(shí)鐘類Clock,包含時(shí)間的Hour、Minute, Second ,以及設(shè)定時(shí)間SetTime()和顯示時(shí)間ShowTime()。,3,設(shè)計(jì)類的步驟:,1、問題分析:確定數(shù)據(jù)成員和成員函數(shù) 2、類的聲明:建立在頭文件中。 3、實(shí)現(xiàn)成員函數(shù):建立在與頭文件同名的.cpp文件中。 4、類和對(duì)象的使用:在main函數(shù)所在的.cpp文件中。,5,類的定義,類的定義包括類的聲明和成員函數(shù)的實(shí)現(xiàn) 。 class 類名稱 public: 公有成員(外部接口) protected: 保護(hù)型成員 private: 私有成員 ;,6,/類的定義實(shí)例(clock.h): class Clock public: void SetTime(int NewH,int NewM, int NewS); void ShowTime( ); private: int Hour, Minute, Second; ;,數(shù)據(jù)成員,函數(shù)成員,7,類成員函數(shù)的實(shí)現(xiàn),成員函數(shù)的2種實(shí)現(xiàn)方式: 在類內(nèi)實(shí)現(xiàn) 和 在類外實(shí)現(xiàn) 。 方法一: 常用類外 一般將成員函數(shù)的實(shí)現(xiàn)放在類的外面,函數(shù)名前用類名限定。如 void Clock:ShowTime() ,8,類外實(shí)現(xiàn)的成員函數(shù)的格式 【常用】 返回值類型 類名:成員函數(shù)名(參數(shù)表) 函數(shù)體 ,類的成員函數(shù)的實(shí)現(xiàn),/實(shí)例(clock.cpp):鐘表類的成員函數(shù)的實(shí)現(xiàn) void Clock:SetTime(int NewH, int NewM,int NewS) Hour=NewH; Minute=NewM; Second=NewS; void Clock:ShowTime() /顯示時(shí)間 coutHour“:“Minute“:“Secondendl; ,9,/提示:一般將成員函數(shù)的實(shí)現(xiàn)放在類的外面,函數(shù)名前用類名限定;并且單獨(dú)存放在擴(kuò)展名為.cpp的文件中,主文件名與類的聲明文件同。,10,對(duì)象的定義與使用,定義類的目的是為了應(yīng)用該類定義對(duì)象。 類的對(duì)象是該類的某一特定實(shí)體,即“類” 類型的變量。 1、對(duì)象的聲明: 類名 對(duì)象名表; 例: Clock myClock; CPoint p1,p2;,11,2、對(duì)象成員的一般訪問方式,方法一:在類的外部只能直接對(duì)象訪問公有成員,采用成員運(yùn)算符“.”實(shí)現(xiàn),格式: 對(duì)象名.成員名 比如, 設(shè)類Clock已經(jīng)定義。 void main() Clock myClock; myClock.SetTime(8,30,30); myClock.ShowTime(); 方法二:在類的內(nèi)部,可直接訪問數(shù)據(jù)成員,格式: 直接使用成員名 void Clock:SetTime( ) Hour = Minute= Second=0;,在VC+6定義和使用類的過程,1、建立vc+工程:win32 console application; 2、在工程中新建.h文件,寫入類的聲明; 3、在工程中新建與.h文件同名的.cpp文件,寫入成員函數(shù)的實(shí)現(xiàn); 4、在工程中新建.cpp文件,編寫main函數(shù),使用類和對(duì)象,進(jìn)行程序測(cè)試; 5、運(yùn)行和調(diào)試程序,聲明點(diǎn)類 CPoint , 包含: 坐標(biāo)X和Y,設(shè)置點(diǎn)的坐標(biāo)Init()和獲取點(diǎn)的橫坐標(biāo)和縱坐標(biāo)GetX()和GetY()三個(gè)函數(shù)。,14,CPoint類的實(shí)現(xiàn),class CPoint public: void Init(int X0,int Y0); int GetX(); int GetY(); private: int X,Y; ;,void CPoint:Init(int X0,int Y0) X=X0; Y=Y0; int CPoint:GetX() return X; int CPoint:GetY() return Y; ,15,CPoint的使用,void main() CPoint p1; p1.Init(10,20); /設(shè)置p1點(diǎn) cout(p1.GetX()”,” p1.GetY()endl; /輸出點(diǎn)坐標(biāo) ,17,實(shí)例:對(duì)象的定義與使用,題目要求:定義一個(gè)復(fù)數(shù)類型,包含實(shí)部和虛部,能對(duì)該類型的對(duì)象賦初值、求實(shí)部、求虛部、求復(fù)數(shù)的絕對(duì)值。 問題分析: (1)數(shù)據(jù)成員和函數(shù)成員 (2)確定成員的訪問屬性: 將數(shù)據(jù)成員聲明為私有的,可以阻止外界對(duì)他們的隨意訪問,只有該類中的成員函數(shù)才能訪問。 將成員函數(shù)聲明為公有的,他們便是外界訪問類中數(shù)據(jù)的接口。,18,/類的聲明 complex.h #include using namespace std; class CComplex public: /成員函數(shù) void init(double r, double i) /賦初值 double realcomplex( ) /求實(shí)部 double imagcomplex( ) /求虛部 double abscomplex( ) /求復(fù)數(shù)的絕對(duì)值 private: /數(shù)據(jù)成員 double m_real; double m_imag; ;,19,/類的成員函數(shù)的實(shí)現(xiàn)complex.cpp void CComplex :init(double r, double i) /賦初值 m_real=r ; m_imag=i; double CComplex : realcomplex( ) /求實(shí)部 return m_real; double CComplex : imagcomplex( ) /求虛部 return m_imag; double CComplex : abscomplex( ) /求復(fù)數(shù)的絕對(duì)值 double t; t = m_real*m_real + m_imag*m_imag; return sqrt(t); ,20,/編寫公共函數(shù),調(diào)用復(fù)數(shù)類 void main( ) CComplex A; A.init(1.5 , 9.7); /初始化對(duì)象A cout“real of complex A =“ A.realcomplex( ) endl; cout“imag of complex A =“ A.imagcomplex( ) endl; cout“abs of complex A =“ A.abscomplex( ) endl; ,運(yùn)行結(jié)果: real of complex A =1.5 imag of complex A =9.7 abs of complex A =9.81529,21,3、通過指向?qū)ο蟮闹羔樤L問對(duì)象成員對(duì)象指針,與結(jié)構(gòu)體類似,通過指向?qū)ο蟮闹羔樅汀?”成員運(yùn)算符可訪問對(duì)象的成員。比如: void main() CPoint p1,*p2; p1.Init(10,20); /設(shè)置p1點(diǎn) p2= /輸出點(diǎn)坐標(biāo) ,22,4、this指針,指向當(dāng)前對(duì)象的指針,當(dāng)需要在類的成員函數(shù)中取得當(dāng)前對(duì)象時(shí)使用。 比如,在CPoint類中增加一個(gè)成員函數(shù),實(shí)現(xiàn):將當(dāng)前點(diǎn)的坐標(biāo)各加1,返回原來的點(diǎn)。,函數(shù)定義(類內(nèi)): Point Add_1( ) Point old=*this; X+; Y+; return old; ,void main() /調(diào)用 Point p1,p2; p1.Init(10,20); /設(shè)置p1點(diǎn) p2=p1.Add_1( ); coutp1.GetX(),p1.GetY( )endl; coutp2.GetX(),p2.GetY( ) endl; ,23,問題:定義類時(shí),如何確定公有成員和私有成員?,方法: 根據(jù)實(shí)際需要而定。 數(shù)據(jù)成員一般定義為私有的(為了實(shí)現(xiàn)數(shù)據(jù)隱藏) 供外界訪問的接口函數(shù)應(yīng)定義為公有的,一個(gè)只供類中的成員函數(shù)調(diào)用的成員函數(shù)應(yīng)當(dāng)定義為私有的。 例如:有一個(gè)學(xué)生成績(jī)類,其屬性有學(xué)號(hào)、姓名、5門課的成績(jī)、平均成績(jī);其成員函數(shù)有輸入一個(gè)學(xué)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論