![第二講復(fù)雜的對象_第1頁](http://file4.renrendoc.com/view/b35fe8e59846bb03695a18dacb430571/b35fe8e59846bb03695a18dacb4305711.gif)
![第二講復(fù)雜的對象_第2頁](http://file4.renrendoc.com/view/b35fe8e59846bb03695a18dacb430571/b35fe8e59846bb03695a18dacb4305712.gif)
![第二講復(fù)雜的對象_第3頁](http://file4.renrendoc.com/view/b35fe8e59846bb03695a18dacb430571/b35fe8e59846bb03695a18dacb4305713.gif)
![第二講復(fù)雜的對象_第4頁](http://file4.renrendoc.com/view/b35fe8e59846bb03695a18dacb430571/b35fe8e59846bb03695a18dacb4305714.gif)
![第二講復(fù)雜的對象_第5頁](http://file4.renrendoc.com/view/b35fe8e59846bb03695a18dacb430571/b35fe8e59846bb03695a18dacb4305715.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二講復(fù)雜的對象1第一頁,共二十四頁,編輯于2023年,星期四本講主要內(nèi)容類和對象對象數(shù)組和對象指針this指針第二頁,共二十四頁,編輯于2023年,星期四1.類和對象在面向?qū)ο蟪绦蛟O(shè)計中,對象的類型稱為類(class)。類代表了某一批對象的共性和特征。類是對象的抽象。而對象是類的具體實(shí)例(instance)。class<自定義類類型名>
{
[private:]
[<私有成員>]
[protected:]
[<私有成員>]
[public:]
[<公有成員>]
};對象的定義
類類型對象1,對象2,…
第三頁,共二十四頁,編輯于2023年,星期四類設(shè)計例題1定義一個類,實(shí)現(xiàn)輸入10個整數(shù),并能夠反序輸出。classmycla{private: intarr[10];public: voidinput() { for(inti=0;i<10;i++)cin>>arr[i]; } voidpr() { for(inti=9;i>=0;i--)cout<<arr[i]<<""; }};參考答案第四頁,共二十四頁,編輯于2023年,星期四類設(shè)計例題2定義一個復(fù)數(shù)類complex,實(shí)現(xiàn)復(fù)數(shù)加、減和乘的功能。classcomplex{private:doubler;doublei;public:voidincom();complexaddcom(complexc2);complexsubcom(complexc2);complexmulcom(complexc2)voidoutcom();};參考答案第五頁,共二十四頁,編輯于2023年,星期四練習(xí)1.在C++語言中,數(shù)據(jù)封裝要解決的問題是
A)數(shù)據(jù)的規(guī)范化
B)便于數(shù)據(jù)轉(zhuǎn)換
C)避免數(shù)據(jù)丟失
D)防止不同模塊之間數(shù)據(jù)的非法訪問
答案:D2.一個函數(shù)功能不太復(fù)雜但要求被頻繁調(diào)用,應(yīng)選用
A.內(nèi)聯(lián)函數(shù)
B.重載函數(shù)
C.遞歸函數(shù)
D.嵌套函數(shù)答案:A第六頁,共二十四頁,編輯于2023年,星期四2.對象數(shù)組和對象指針數(shù)組不僅可以由簡單的變量組成,也可以由對象組成。對象數(shù)組的使用方法有普通的對象方法相同。定義一般形式類名對象名[參數(shù)];第七頁,共二十四頁,編輯于2023年,星期四對象指針指向?qū)ο蟮闹羔樅喎Q對象指針對象空間的起始地址就是對象的指針定義一般形式類名*對象指針名;對象動態(tài)的建立與釋放對象動態(tài)的建立類*ptpt=new類動態(tài)的釋放deletept;第八頁,共二十四頁,編輯于2023年,星期四程序中常常用對象指針作為函數(shù)的參數(shù)好處:實(shí)現(xiàn)傳地址調(diào)用,可以在被調(diào)用函數(shù)中改變調(diào)用函數(shù)的參數(shù)對象值,實(shí)現(xiàn)函數(shù)之間的信息傳遞;使用對象指針作為參數(shù)僅傳遞實(shí)參的地址給形參,而不進(jìn)行副本的拷貝,這樣可以減少開銷,提高運(yùn)行效率。第九頁,共二十四頁,編輯于2023年,星期四對象指針例題3設(shè)計一個類,具有x,y私有數(shù)據(jù)成員,設(shè)計方法實(shí)現(xiàn)對象之間的拷貝。classcla{private: intx;inty;public:voidincome(){ cin>>x>>y;}voidcopy(cla*p){ x=p->x;y=p->y;}voidpr(){ cout<<x<<""<<y<<endl;}};參考答案第十頁,共二十四頁,編輯于2023年,星期四寫出以下程序段的輸出結(jié)果#include<iostream.h>#include<string.h>classperson{ private: intno; charname[20]; public: voidsetvalue(intno,charname[]) { this->no=no; strcpy(this->name,name); } intgetno(){returnno;} char*getname(){returnname;}};voidmain() {person*p; p=newperson; p->setvalue(1,"zhang"); cout<<p->getno()<<":"<<(*p).getname()<<endl; }答案:1:zhang第十一頁,共二十四頁,編輯于2023年,星期四指向?qū)ο髷?shù)組的指針指向?qū)ο髷?shù)組的指針格式類名(*指針名)[(大?。…如A(*pa)[10];pa是一個指向?qū)ο髷?shù)組的指針名它指向的對象數(shù)組是一個一維數(shù)組每個元素是類A的一個對象第十二頁,共二十四頁,編輯于2023年,星期四對象指針數(shù)組對象指針數(shù)組的元素是指向?qū)ο蟮闹羔槪笏械臄?shù)組元素都是指向相同類的對象的指針。格式:類名*(數(shù)組名)[大小]…對象指針數(shù)組與一般數(shù)組相似,只是數(shù)組的元素不同。數(shù)組元素為指向?qū)ο蟮闹羔槙r,該數(shù)組為對象指針數(shù)組。第十三頁,共二十四頁,編輯于2023年,星期四例題4定義一個類cla,具有x,y兩個數(shù)據(jù)成員,有輸入和輸出功能,在主函數(shù)中,定義若干個對象,定義一個對象指針數(shù)組,指向它們,利用對象指針數(shù)組來實(shí)現(xiàn)所有對象的輸出功能。第十四頁,共二十四頁,編輯于2023年,星期四練習(xí)1.下列關(guān)于對象數(shù)組的描述中,()是錯誤的。(A)對象數(shù)組的數(shù)組名是一個常量指針
(B)對象數(shù)組的下標(biāo)從0開始
(C)對象數(shù)組的每一個元素都是相同的對象
(D)對象數(shù)組只能賦初值,不能再程序中賦值答案:D2.下列關(guān)于指向二維對象數(shù)組的指針,定義正確的是()。
(A).cla(*pt)[3][4]
(B).cla(*pt)[3](obj)
(C).cla*pt[3][4]
(D).cla(*pt)[3,4]
答案:A第十五頁,共二十四頁,編輯于2023年,星期四3.this指針C++中,同一類的各個對象都有自己的數(shù)據(jù)成員的存儲空間,而系統(tǒng)不會為每個類的對象建立成員函數(shù)的副本。類的成員函數(shù)可以被各個對象調(diào)用。問題:Tclassobject1,objectp;object1.print();objectp->print();成員函數(shù)print()是怎樣分清給哪個對象執(zhí)行的呢?第十六頁,共二十四頁,編輯于2023年,星期四thisC++為成員函數(shù)提供一個稱為this的指針,this在所有成員函數(shù)調(diào)用里作為一個隱含參數(shù)傳送給成員函數(shù),所以,我們常稱成員函數(shù)擁有this指針。當(dāng)一個對象調(diào)用類的成員函數(shù)時,this指針就指向該對象,this是一個隱含的指針,它不能被顯式說明;this是個局部變量,局限于某一個對象。this指針通常不顯式使用,需要時可以用(*this)來表示給成員對象。this指針主要在運(yùn)算符重載、自引用等場合。當(dāng)一個對象調(diào)用類的成員函數(shù)時,系統(tǒng)先將該對象的地址賦給this指針,然后調(diào)用成員函數(shù)。第十七頁,共二十四頁,編輯于2023年,星期四this指針只能在一個類的成員函數(shù)中調(diào)用,它表示當(dāng)前對象的地址。下面是一個例子:
voidDate::setMonth(intmn)
{
month=mn;//這三句是等價的
this->month=mn;
(*this).month=mn;
}第十八頁,共二十四頁,編輯于2023年,星期四例如:類cla中有一個成員函數(shù)intcla::fun(){returnx*y;}C++把它處理為intcla::fun(cla*this){returnthis->x*this->y;}當(dāng)對象obj調(diào)用該成員函數(shù)時,實(shí)際上是用下面的方式調(diào)用的obj.fun(&obj);將對象obj的地址傳給形this指針,然后按this的指向去引用成員函數(shù)的。注意:this指針通常不顯式定義!下面的語句不能出現(xiàn)在程序中,這里是為了便于理解。intcla::fun(cla*this)obj.fun(&obj);第十九頁,共二十四頁,編輯于2023年,星期四this指針練習(xí)(j205.cpp)看程序,寫結(jié)果。#include<iostream.h>classaa{private:inta,b;public: voidsetaa() {a=0;b=0;}voidsetaa1(intx,inty) {a=x;b=y;} intreturna() {returna;} intreturnb() {returnb;}
voidmain(){aaa1,a2;a1.setaa();a2.setaa1(3,4);a1.copy(a2);cout<<a1.returna()-a2.returna()<<endl;cout<<a1.returnb()+a2.returnb()<<endl;}voidcopy(aa&z);};voidaa::copy(aa&z){ if(this==&z) return; *this=z;}08第二十頁,共二十四頁,編輯于2023年,星期四j206.cpp例題5利用this指針,判斷兩個對象是否指針同一內(nèi)存空間。classcla{public: intfun1(cla&obj) { if(this==&obj) return1; else return0; } };第二十一頁,共二十四頁,編輯于2023年,星期四練習(xí)1.關(guān)于this指針的說法正確的是()。
(A)
this指針必須顯示的說明(B)定義一個類后,this指針就指向該類
(C)成員函數(shù)擁有this指針
(D)this指針屬于對象的答案:C2.this指針能出現(xiàn)在()地方。
(A)成員函數(shù)內(nèi)部(B)成員函數(shù)形式參數(shù)(
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)友好的教育環(huán)境創(chuàng)建計劃
- 懸掛起重機(jī)安裝施工方案
- 現(xiàn)代組織領(lǐng)導(dǎo)力激發(fā)團(tuán)隊(duì)潛力的秘訣
- 班組協(xié)同工作溝通是關(guān)鍵
- 2024秋四年級英語上冊 Unit 5 Dinners ready第6課時(Read and write Story time)說課稿 人教PEP
- 《10 我們心中的星》(說課稿)-2023-2024學(xué)年四年級上冊綜合實(shí)踐活動吉美版
- Unit 5 The colourful world第一課時(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 2024年秋七年級英語上冊 Starter Module 2 My English lesson Unit 3 Im twelve說課稿 (新版)外研版
- 2024年四年級品社下冊《圓明園的控訴》說課稿 滬教版
- Unit 1 My classroom PA Let's talk(說課稿)-2024-2025學(xué)年人教PEP版英語四年級上冊
- 《GMP基礎(chǔ)知識培訓(xùn)》課件
- 2025屆江蘇省無錫市天一中學(xué)高一上數(shù)學(xué)期末質(zhì)量檢測試題含解析
- 數(shù)學(xué)家華羅庚課件
- 貴州茅臺酒股份有限公司招聘筆試題庫2024
- 《人工智能基礎(chǔ)》課件-AI的前世今生:她從哪里來
- 《納米技術(shù)簡介》課件
- 血液透析高鉀血癥的護(hù)理查房
- 思政課國內(nèi)外研究現(xiàn)狀分析
- 2024年青海省西寧市選調(diào)生考試(公共基礎(chǔ)知識)綜合能力題庫帶答案
- HYT 235-2018 海洋環(huán)境放射性核素監(jiān)測技術(shù)規(guī)程
- 中國香蔥行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告2024-2034版
評論
0/150
提交評論