

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 第9次課 拷貝構(gòu)造函數(shù) 組合類 上次課內(nèi)容 構(gòu)造函數(shù)和析構(gòu)函數(shù) 含義定義定義方法2013-4-17 C卄程序設(shè)計(jì)類9對(duì)纟 本次課內(nèi)容 4.3.2拷貝構(gòu)造函數(shù) 4.4 類的組合 拷貝構(gòu)造函數(shù) 面向?qū)ο蟮某绦蛟O(shè)計(jì)就是要能夠如實(shí)反映客 觀世界中各種問(wèn)題的本來(lái)面目, 因此對(duì)象的復(fù) 制是C+程序必不可少的能力。 生成一個(gè)對(duì)象的副本有兩種途徑,一是建立 一個(gè)新對(duì)象,然后將一個(gè)已有對(duì)象的數(shù)據(jù)成員 行,但很繁瑣。值取出來(lái), 賦給2013-4-17 C卄程序設(shè)計(jì)類9對(duì)纟 以clock類為例 Main() clock 01(830,30); 生成cl副本?即生成一個(gè)與cl一樣的對(duì)象。 可稱為c2 整型副本: i
2、nt a=l; int b=a;2013-4-17 C+f 8 其他方法? 二是使類具有自行復(fù)制本類對(duì)象的能力,這 也正是拷貝構(gòu)造函數(shù)的功能。 拷貝構(gòu)造函數(shù)實(shí)現(xiàn)了在初始化時(shí)將一個(gè)已 知對(duì)象的數(shù)據(jù)成員的值拷貝給正在創(chuàng)建的另一 個(gè)同類的對(duì)象。可以根據(jù)實(shí)際問(wèn)題的需要定義 特定的拷貝構(gòu)造函數(shù),以實(shí)現(xiàn)同類對(duì)象之間數(shù) 據(jù)成員的傳遞。 每個(gè)類中必須有一個(gè)拷貝構(gòu)造函數(shù)。若類 中未說(shuō)明,則編譯系統(tǒng)會(huì)自動(dòng)生成一個(gè)默認(rèn)的 拷貝構(gòu)造函數(shù)。這個(gè)默認(rèn)拷貝構(gòu)造函數(shù)的功能 是把初始值對(duì)象的每個(gè)數(shù)據(jù)成員的值都復(fù)制到 2013-4-17 C+f 8 新建立的對(duì)象中。2013-4-17 C+程序設(shè)計(jì)罠與対 10 聲明和實(shí)現(xiàn)拷貝構(gòu)造
3、函數(shù)的一般方法: class類名 public: 類名(形參表); 構(gòu)造函數(shù) 類名(類名&對(duì)象名); 拷貝構(gòu)造函數(shù) ; 類名:類名(類名&對(duì)象名)拷貝構(gòu)造函數(shù)的實(shí)現(xiàn) 函數(shù)體 如:student:student(student &s) 2013-4-17 一個(gè)拷貝構(gòu)造函數(shù)的例子:通過(guò)水平和垂直兩個(gè)方向的坐標(biāo)值X和Y 來(lái)確是屏幕上的一個(gè)點(diǎn)。點(diǎn)(point)類中聲明如下: class Point public: 2013-4-18 C+程序設(shè)計(jì)罠與対 10 Point( int xx=0, int yy=0) Point( Point &p); X=xx; Y=yy;
4、 構(gòu)造函數(shù) 拷貝構(gòu)造函數(shù) 類中聲明了內(nèi)聯(lián)構(gòu)造函數(shù)和拷貝構(gòu)造函 數(shù)。拷貝構(gòu)造函數(shù)的實(shí)現(xiàn)如下: Point: :Point( Point &p) X=p.X; Y=p-Y; cout-拷貝構(gòu)造函數(shù)被調(diào) 用endl; 2013-4-17 普通構(gòu)造函數(shù)是在對(duì)象創(chuàng)建時(shí)被調(diào)用,而拷貝構(gòu) 造函數(shù)在以下三種情況下都會(huì)被調(diào)用: 1.用一個(gè)已知對(duì)象初始化一個(gè)新對(duì)象時(shí)。 void main() Point A(l, 2); Point B(A); /用對(duì)象A初始化對(duì)象B,拷貝構(gòu)造函數(shù)被調(diào) 用 cout B.GetX() endl; 2013-4-17 2、以值調(diào)用方式向一個(gè)函數(shù)傳遞對(duì)象參數(shù)時(shí)。 void f
5、(Point p) cout p.GetX() endl; void main() Point A(l, 2); f(A); 函數(shù)的形參為類的對(duì)象,當(dāng)調(diào)用函數(shù) 時(shí),拷貝構(gòu)造函數(shù)被調(diào)用11 ;, 1 4 17 c+令程序設(shè)計(jì)類與對(duì)纟 14 3、當(dāng)對(duì)象作為函數(shù)返回值時(shí) Point g() 函數(shù)的返回值是類對(duì)象,返回函數(shù) 值時(shí),調(diào)用拷貝構(gòu)造函數(shù) void main() Point B; B=g(); Point 2013-4-17 設(shè)計(jì)罠與對(duì)彳 13 #include class A void main() public: A(inta=0) A 駙2); a1.outputx(); Aa2(a1)
6、; coutu調(diào)用構(gòu)造函數(shù)coutux=uxendl; private: 涮用拘造旳數(shù) 2013-4-17 2013-4-17 45類的組合 現(xiàn)實(shí)世界中的復(fù)雜問(wèn)題可以被逐步劃分為 一系列較為簡(jiǎn)單的子問(wèn)題,從而能夠容易地 被解決。 在面向?qū)ο蟪绦蛟O(shè)計(jì)中, 可以對(duì)復(fù)雜對(duì)象 進(jìn)行分解、抽象,把一個(gè)復(fù)雜對(duì)象分解為簡(jiǎn) 單對(duì)象的組合,由比較容易理解和實(shí)現(xiàn)的部 件對(duì)象裝配而成。Point類的完整程序。 include class Point public: Point( int xx=O, int yy=O) X=xx;Y=yy; Point( Point &p); int GetX() retur
7、n X; int GetY() return Y; private: intXY; ; 成員函數(shù)的實(shí)現(xiàn) Point: :Point(Point &p) X=pmonth,year; char sex; 上些二, public: 上 person(int njnt i,int djnt mjnt ychar s); person() void input(); void output();內(nèi)嵌了對(duì)象。 泉入專蠕出。 用成24 person:person(int njnt i,int d,int mjnt ychar s) num=n; id=i; day=d; 上風(fēng): month=m;
8、year=y; sex=s; 退出 cout/constructor calledvvendl; void input() int mint i,int djnt mjnt y,char s; coutvv請(qǐng)輸入編號(hào):vvendl; cinn; num=n; coutvv請(qǐng)輸入身份證號(hào):vvendl; coutvv請(qǐng)輸入出生日期年-月-日:vvendl; cinymd; year=y; month=m;day=d; cins; sex=s;電 coutvv 輸入性別:vvendl; 26 void output() coutvv第vvnvv號(hào)個(gè)人信息如下 vvendl; u cout setw
9、(5)/身份證號(hào):” j tcsetw(5) id endl; cout setw(5)/ 出生日期:/#setw(5) 匚頁(yè) j; vvyearvvvvmonthvvvvdayvvendl; 11 陀 outvvsetw(5)vv性別:vvsvvendl; 25 void main() person perarray5; for(int i=0;iendl; 29 void date:setdate() 設(shè)置年月日的函數(shù) int d*rrby; coutiW輸入出生日期:年-月日: endl; 上匹 cinymd; 卜頁(yè)year=y; day=d; month=m; 32 void date
10、:outputdate() coutvv日期年-月日:/year/- 11 vvmonthvvvvdayvvendl; 修改人員類: class person | int num,idaymonth,year; char sex; 上現(xiàn) public: tjperson(int njnt i,int d,int mjnt ychar s); person() void input(); void output(); 34 class person int num,id; date birthday; char sex; 9 public: i 口二丿) person(int n,int ijn
11、t djnt mjnt y.char s); person() void input(); void output(); 組合類構(gòu)造函數(shù) person(int mint i,int d,int mjnt y,char s): jiijrthdayCdmy) 上頁(yè). num=n; I 頁(yè) J sex=s; id=i; coutvvpersons constructor calledlendl;36 void person:input() void person:output() coutsetw(10)#/編號(hào): setw(10)numendl; coutsetw(10)性別: 上貝 j set
12、w(10)sexendl; coutsetw(10)/ 出生日期:”; birthday.outputdate(); i coutsetw(10)身份證號(hào): setw(10)id/2,2,2008,230001), person(02/m;2,2,2008,230002); 頁(yè) for(int j=0;j2;j+) 卜pj.output(); 37 廠對(duì)象數(shù)組q不初始化,信息直接由鍵盤(pán)錄入 并輸出 void main() person q2; CQUtVV*開(kāi)始錄入人員信息:*”; for(int i=0;i2;i+) qi.input(); qi.output(); 上機(jī): 設(shè)一個(gè)Person類,該類有數(shù)據(jù)成員name (姓名),ID(身份證號(hào))等,成員函數(shù)實(shí)現(xiàn) m 對(duì)相關(guān)信息的錄入和顯示,要包含構(gòu)造函 數(shù)和析構(gòu)函數(shù): 設(shè) 個(gè)BankAccount (銀行帳戶)類,該 卜衛(wèi) 來(lái)有數(shù)據(jù)成員personinfo (帳戶所有人信息 ),balance (帳戶余額),interest_rate ( 通 帳戶的利率)。負(fù)審personinfo為Person類 類型。成員函數(shù)實(shí)現(xiàn)對(duì)帳戶相關(guān)數(shù)據(jù)的初 始化,并將帳戶信息顯示出來(lái)。 要求:BankAccount類中的成員函數(shù)應(yīng)包含 相應(yīng)構(gòu)造函數(shù),
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 市場(chǎng)調(diào)查報(bào)告6
- 2025至2030年中國(guó)靛藍(lán)青布行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)行車欠過(guò)載保護(hù)裝置行業(yè)投資前景及策略咨詢研究報(bào)告
- 小學(xué)實(shí)驗(yàn)室課程評(píng)估與反饋計(jì)劃
- 2025至2030年中國(guó)仿獾水煮鬃行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年ZRO2陶瓷制品項(xiàng)目申請(qǐng)報(bào)告
- 2025年春季六年級(jí)班主任課后輔導(dǎo)計(jì)劃
- 榴蓮店可行性報(bào)告
- 2025年硫精砂項(xiàng)目提案報(bào)告
- 2025年磁粉探傷機(jī)項(xiàng)目申請(qǐng)報(bào)告模板
- 遂寧遂寧市住房和城鄉(xiāng)建設(shè)局公開(kāi)招聘編外人員筆試歷年參考題庫(kù)附帶答案詳解
- DBJ41-T311-2025 《人民防空節(jié)鎳型不銹鋼防護(hù)設(shè)備選用與安裝技術(shù)標(biāo)準(zhǔn)》
- 2025高考化學(xué)復(fù)習(xí)新題速遞之有機(jī)合成(解答大題)(2025年4月)
- 國(guó)家開(kāi)放大學(xué)《Web開(kāi)發(fā)基礎(chǔ)》形考任務(wù)實(shí)驗(yàn)1-5參考答案
- 輸變電工程施工質(zhì)量驗(yàn)收統(tǒng)一表式附件1:線路工程填寫(xiě)示例
- 數(shù)學(xué)分析課件之第四章函數(shù)的連續(xù)性
- 雙減背景下小學(xué)語(yǔ)文作業(yè)設(shè)計(jì)課題研究方案
- 北京工業(yè)大學(xué)信號(hào)處理工程應(yīng)用訓(xùn)練
- 投影融合方案
- 試卷密封線模板
- 外貿(mào)委托付款協(xié)議書(shū)模板(中英文版)
評(píng)論
0/150
提交評(píng)論