版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1為什么要引入構(gòu)造函數(shù)和析構(gòu)函數(shù)?對(duì)象的初始化是指對(duì)象數(shù)據(jù)成員的初始化,在使用對(duì)象前,一定要初始化。由于數(shù)據(jù)成員一般為私有的(private),所以不能直接賦值。對(duì)對(duì)象初始化有以下兩種方法:類中提供一個(gè)普通成員函數(shù)來(lái)初始化,但是會(huì)造成使用上的不便(使用對(duì)象前必須顯式調(diào)用該函數(shù))和不安全(未調(diào)用初始化函數(shù)就使用對(duì)象)。當(dāng)定義對(duì)象時(shí),編譯程序自動(dòng)調(diào)用構(gòu)造函數(shù)。析構(gòu)函數(shù)的功能是當(dāng)對(duì)象被撤消時(shí),釋放該對(duì)象占用的內(nèi)存空間。析構(gòu)函數(shù)的作用與構(gòu)造函數(shù)正好相反,一般情況下,析構(gòu)函數(shù)執(zhí)行構(gòu)造函數(shù)的逆操作。在對(duì)象消亡時(shí),系統(tǒng)將自動(dòng)調(diào)用析構(gòu)函數(shù),執(zhí)行一些在對(duì)象撤消前必須執(zhí)行的清理任務(wù)。類的公有、私有和保護(hù)成員之間的
2、區(qū)別是什么?私有成員private:私有成員是在類中被隱藏的部分,它往往是用來(lái)描述該類對(duì)象屬性的一些數(shù)據(jù)成員,私有成員只能由本類的成員函數(shù)或某些特殊說(shuō)明的函數(shù)(如第4章講到的友員函數(shù))訪問(wèn),而類的外部根本就無(wú)法訪問(wèn),實(shí)現(xiàn)了訪問(wèn)權(quán)限的有效控制,使數(shù)據(jù)得到有效的保護(hù),有利于數(shù)據(jù)的隱藏,使內(nèi)部數(shù)據(jù)不能被任意的訪問(wèn)和修改,也不會(huì)對(duì)該類以外的其余部分造成影響,使模塊之間的相互作用被降低到最小。private成員若處于類聲明中的第一部分,可省略關(guān)鍵字private。公有成員public:公有成員對(duì)外是完全開(kāi)放的,公有成員一般是成員函數(shù),它提供了外部程序與類的接口功能,用戶通過(guò)公有成員訪問(wèn)該類對(duì)象中的數(shù)據(jù)。
3、保護(hù)成員protected:只能由該類的成員函數(shù),友元,公有派生類成員函數(shù)訪問(wèn)的成員。保護(hù)成員與私有成員在一般情況下含義相同,它們的區(qū)別體現(xiàn)在類的繼承中對(duì)產(chǎn)生的新類的影響不同,具體內(nèi)容將在第5章中介紹。缺省訪問(wèn)控制(未指定private、protected、public訪問(wèn)權(quán)限)時(shí),系統(tǒng)認(rèn)為是私有private成員。什么是拷貝構(gòu)造函數(shù),它何時(shí)被調(diào)用?拷貝構(gòu)造函數(shù)的功能是用一個(gè)已有的對(duì)象來(lái)初始化一個(gè)被創(chuàng)建的同類對(duì)象,是一種特殊的構(gòu)造函數(shù),具有一般構(gòu)造函數(shù)的所有特性,當(dāng)創(chuàng)建一個(gè)新對(duì)象時(shí)系統(tǒng)自動(dòng)調(diào)用它;其形參是本類對(duì)象的引用,它的特殊功能是將參數(shù)代表的對(duì)象逐域拷貝到新創(chuàng)建的對(duì)象中。在以下四種情況下系
4、統(tǒng)會(huì)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù):用類的一個(gè)對(duì)象去初始化另一個(gè)對(duì)象catcat1;catcat2(catl);/創(chuàng)建cat2時(shí)系統(tǒng)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù),/用cat1初始化cat2。用類的一個(gè)對(duì)象去初始化另一個(gè)對(duì)象時(shí)的另外一種形式Catcat2=cat1;/注意并非catcat1,cat2;cat2=cat1;對(duì)象作為函數(shù)參數(shù)傳遞時(shí),調(diào)用拷貝構(gòu)造函數(shù)。f(cata)/定義f函數(shù),形參為cat類對(duì)象catb;/定義對(duì)象bf(b);/進(jìn)行f函數(shù)調(diào)用時(shí),系統(tǒng)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù)如果函數(shù)的返回值是類的對(duì)象,函數(shù)調(diào)用返回時(shí),調(diào)用拷貝構(gòu)造函數(shù)。設(shè)計(jì)一個(gè)計(jì)數(shù)器類,當(dāng)建立該類的對(duì)象時(shí)其初始狀態(tài)為0,考慮為計(jì)數(shù)器定義哪些
5、成員?/counter.h#ifndefcounter_h#definecounter_hclasscounterprivate:intcount;public:counter();voidsetCount(inti);intgetCount();voiddisplayCount();voidincrementCount();voiddecrementCount();counter();#endif/counter.cpp#includecounter.h#includecounter:counter()count=0;voidcounter:displayCount()coutcounten
6、dl;intcounter:getCount()returncount;voidcounter:setCount(inti)count=i;voidcounter:incrementCount()count+;voidcounter:decrementCount()count-;/MAIN.CPP#includecounter.h#includevoidmain()counterc1;c1.displayCount();c1.setCount(4);c1.displayCount();for(inti=0;i=10;i+)c1.incrementCount();c1.displayCount(
7、);5.定義一個(gè)時(shí)間類,能提供和設(shè)置由時(shí)、分、秒組成的時(shí)間,并編寫(xiě)出應(yīng)用程序,定義時(shí)間對(duì)象,設(shè)置時(shí)間,輸出該對(duì)象提供的時(shí)間。#includeclassTimeinthour,minute,second;public:Time(inth=0,intm=0,ints=0)hour=h;minute=m;second=s;voidsetHour(inth)hour=h;voidsetMinute(intm)minute=m;voidsetSecond(ints)second=s;voiddisplay()couthour:minute:secondendl;voidmain()Timet;t.dis
8、play();t.setHour(13);t.setMinute(15);t.setSecond(30);t.display();6.設(shè)計(jì)一個(gè)學(xué)生類student,它具有的私有數(shù)據(jù)成員是:注冊(cè)號(hào)、姓名、數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī)成績(jī);具有的公有成員函數(shù)是:求三門課總成績(jī)的函數(shù)sum;求三門課平均成績(jī)的函數(shù)average;顯示學(xué)生數(shù)據(jù)信息的函數(shù)print;獲取學(xué)生注冊(cè)號(hào)的函數(shù)get_reg_num;設(shè)置學(xué)生數(shù)據(jù)信息的函數(shù)set_stu_inf。編制主函數(shù),說(shuō)明一個(gè)student類對(duì)象的數(shù)組并進(jìn)行全班學(xué)生信息的輸入與設(shè)置,而后求出每一學(xué)生的總成績(jī)、平均成績(jī)、全班學(xué)生總成績(jī)最高分、全班學(xué)生總平均分,并在輸入
9、一個(gè)注冊(cè)號(hào)后,輸出該學(xué)生有關(guān)的全部數(shù)據(jù)信息。#include#includeusingnamespacestd;classStudentprivate:intnum;charname10;floatmath;floatenglish;floatcomputer;public:voidset_stu_inf(intn,char*ch,floatm,floate,floatc)num=n;strcpy(name,ch);math=m;english=e;computer=c;floatsum()return(math+english+computer);floataverage()return(m
10、ath+english+computer)/3;intget_reg_num()returnnum;voidprint()cout學(xué)號(hào):numendlqweazx;if(q=0)break;stucount+.set_stu_inf(q,we,a,z,x);if(maxa+z+x);elsemax=a+z+x;aver+=(a+z+x);/輸出所有學(xué)生信息cout學(xué)生信息為:endlendl;for(i=0;icount;i+)stui.print();coutendl;cout全班學(xué)生總成績(jī)最高分為maxendlq;for(i=0;icount;i+)if(q=stui.get_reg_nu
11、m()cout此學(xué)生信息為:endl;stui.print();break;if(i=count)cout查無(wú)此人endl;7.模擬棧模型的操作,考慮順序棧和鏈棧兩種形式。鏈棧:#includeiostream.hclassStackstructNodeintcontent;Node*next;*top;public:Stack()top=NULL;boolpush(inti);boolpop(int&i);/定義堆棧類/構(gòu)造函數(shù)的定義壓棧成員函數(shù)的聲明彈棧成員函數(shù)的聲明/壓棧成員函數(shù)的定義boolStack:push(inti)Node*p=newNode;if(p=NULL)coutcon
12、tent=i;p-next=top;top=p;returntrue;boolStack:pop(int&i)/彈棧成員函數(shù)的定義if(top=NULL)coutnext;i=p-content;deletep;returntrue;voidmain()Stackst1,st2;intx;for(inti=1;i=5;i+)st1.push(i);st2.push(i);coutstack1:endl;for(i=1;i=3;i+)st1.pop(x);coutxendl;/定義對(duì)象stl和st2/壓棧成員函數(shù)的調(diào)用/壓棧成員函數(shù)的調(diào)用/彈棧成員函數(shù)的調(diào)用st1.push(20);for(i=1;i=4;i+)i
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度國(guó)際會(huì)議及展覽活動(dòng)宣傳推廣合同3篇
- 二零二五年度建筑管道系統(tǒng)安裝服務(wù)合同2篇
- 2025年度個(gè)人委托新能源儲(chǔ)能技術(shù)投資合同3篇
- 商鋪售后返租合同中的履約保障與爭(zhēng)議解決(2025年版)2篇
- 二零二五年度建筑玻璃幕墻工程勞務(wù)分包及安全評(píng)估協(xié)議3篇
- 2025年度氣體滅火系統(tǒng)研發(fā)與生產(chǎn)合作協(xié)議
- 二零二五年度城市綠化帶植物病蟲(chóng)害防治合同3篇
- 2025版壓路機(jī)設(shè)備翻新改造與租賃合同范本3篇
- 二零二五年度商用機(jī)動(dòng)車買賣合同范本3篇
- 高速公路交通安全宣傳教育活動(dòng)合同(二零二五版)3篇
- 場(chǎng)地委托授權(quán)
- 2024年四川省成都市龍泉驛區(qū)中考數(shù)學(xué)二診試卷(含答案)
- 項(xiàng)目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓(xùn)課件
- 紅色主題研學(xué)課程設(shè)計(jì)
- 胸外科手術(shù)圍手術(shù)期處理
- 裝置自動(dòng)控制的先進(jìn)性說(shuō)明
- 《企業(yè)管理課件:團(tuán)隊(duì)管理知識(shí)點(diǎn)詳解PPT》
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)二 軟文的寫(xiě)作
- 英語(yǔ)詞匯教學(xué)中落實(shí)英語(yǔ)學(xué)科核心素養(yǎng)
- 《插畫(huà)設(shè)計(jì)》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論