C++程序設(shè)計(jì) lecture4_第1頁(yè)
C++程序設(shè)計(jì) lecture4_第2頁(yè)
C++程序設(shè)計(jì) lecture4_第3頁(yè)
C++程序設(shè)計(jì) lecture4_第4頁(yè)
C++程序設(shè)計(jì) lecture4_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、復(fù)習(xí):復(fù)習(xí):指針數(shù)組vs.數(shù)組指針int *p110;int (*p2)10;指針數(shù)組:指針數(shù)組:首先它是一個(gè)數(shù)組,數(shù)組的元素都是指針,數(shù)組占多少個(gè)字節(jié)由數(shù)組本身決定。它是“儲(chǔ)存指針的數(shù)組”的簡(jiǎn)稱(chēng)。數(shù)組指針:數(shù)組指針:首先它是一個(gè)指針,它指向一個(gè)數(shù)組。在32 位系統(tǒng)下永遠(yuǎn)是占4 個(gè)字節(jié),至于它指向的數(shù)組占多少字節(jié),不知道。它是“指向數(shù)組的指指向數(shù)組的指針針”的簡(jiǎn)稱(chēng)。1復(fù)習(xí):復(fù)習(xí):指針數(shù)組vs.數(shù)組指針2int *p110; 指針數(shù)組指針數(shù)組int (*p2)10; 數(shù)組指針數(shù)組指針“”的優(yōu)先級(jí)比“*”要高。如何使用:如何使用:指針數(shù)組定義 int *p1n;優(yōu)先級(jí)高,先與p1結(jié)合成為一個(gè)數(shù)組,

2、再由int*說(shuō)明這是一個(gè)整型指針數(shù)組,它有n個(gè)指針類(lèi)型的數(shù)組元素。這里執(zhí)行這里執(zhí)行p1+1是錯(cuò)誤的,這樣賦值也是錯(cuò)誤的:是錯(cuò)誤的,這樣賦值也是錯(cuò)誤的:p=a;因?yàn)閜是個(gè)不可知的表示,只存在只存在p10、p11、p12.p1n-1,而且它們分別是指針變量可以用來(lái)存放變量地址。如要將二維數(shù)組賦給一指針數(shù)組:int *p13;int a34;for(i=0;i3;i+)p1i=ai;這里int *p13 表示一個(gè)一維數(shù)組內(nèi)存放著三個(gè)指針變量,分別是p10、p11、p12所以要分別賦值。3如何使用:如何使用:數(shù)組指針定義 int (*p2)n;()優(yōu)先級(jí)高,首先說(shuō)明p是一個(gè)指針,指向一個(gè)整型的一維數(shù)組

3、,這個(gè)一維數(shù)組的長(zhǎng)度是n,也可以說(shuō)是p的步長(zhǎng)。也就是說(shuō)執(zhí)執(zhí)行行p+1時(shí),時(shí),p要跨過(guò)要跨過(guò)n個(gè)整型數(shù)據(jù)的長(zhǎng)度個(gè)整型數(shù)據(jù)的長(zhǎng)度。如要將二維數(shù)組賦給一指針,應(yīng)這樣賦值:int a34;int (*p2)4; /該語(yǔ)句是定義一個(gè)數(shù)組指針,指向含4個(gè)元素的一維數(shù)組。 p2=a; /將該二維數(shù)組的首地址賦給p2,也就是a0或&a00 p2+; /該語(yǔ)句執(zhí)行過(guò)后,也就是p2=p2+1;p跨過(guò)行a0指向了行a1所以數(shù)組指針數(shù)組指針也稱(chēng)指向一維數(shù)組的指針,亦稱(chēng)行指針行指針。4總結(jié):總結(jié):指針數(shù)組vs.數(shù)組指針數(shù)組指針數(shù)組指針只是一個(gè)指針變量一個(gè)指針變量,似乎是C或C+語(yǔ)言里專(zhuān)門(mén)用來(lái)指向二維數(shù)組指向二維

4、數(shù)組的,它占有內(nèi)存中一個(gè)指針的存儲(chǔ)空間。指針數(shù)組指針數(shù)組是多個(gè)指針變量多個(gè)指針變量,以數(shù)組形式存以數(shù)組形式存在內(nèi)存當(dāng)中在內(nèi)存當(dāng)中,占有多個(gè)指針的存儲(chǔ)空間。5C+類(lèi)類(lèi)C+類(lèi)為了支持面向?qū)ο蟪绦蛟O(shè)計(jì),C+在C語(yǔ)言結(jié)構(gòu)體(struct)數(shù)據(jù)類(lèi)型的基礎(chǔ)上引入了類(lèi)這種抽象數(shù)據(jù)類(lèi)型。C+面向?qū)ο缶幊虒?shí)質(zhì)上就是面向類(lèi)編程,只有定義和實(shí)現(xiàn)了類(lèi),才能聲明屬于這個(gè)類(lèi)的對(duì)象,才能通過(guò)對(duì)象使用定義的成員。傳統(tǒng)C程序員把編程重點(diǎn)放在函數(shù)的編寫(xiě)上,而C+程序員把重點(diǎn)放在類(lèi)的定義和實(shí)現(xiàn)上。C+類(lèi)類(lèi)類(lèi)的定義與實(shí)現(xiàn)C+類(lèi)將對(duì)象的屬性抽象為數(shù)據(jù)成員,將對(duì)象的行為抽象為成員函數(shù),并對(duì)它們進(jìn)行封裝。數(shù)據(jù)成員又稱(chēng)成員變量,成員函數(shù)又稱(chēng)

5、為方法。C+類(lèi)在形式上類(lèi)似于C語(yǔ)言中用戶自定義的結(jié)構(gòu)體類(lèi)型,但定義類(lèi)時(shí)規(guī)定了成員的訪問(wèn)控制權(quán)限。類(lèi)的定義分為聲明部分聲明部分和實(shí)現(xiàn)部分實(shí)現(xiàn)部分:聲明部分用來(lái)說(shuō)明該類(lèi)的成員,主要說(shuō)明聲明部分用來(lái)說(shuō)明該類(lèi)的成員,主要說(shuō)明“干什么干什么”實(shí)現(xiàn)部分對(duì)成員函數(shù)的具體操作進(jìn)行定義,主要闡述實(shí)現(xiàn)部分對(duì)成員函數(shù)的具體操作進(jìn)行定義,主要闡述“怎怎么干么干”O(jiān)bject Oriented Programming 8世界中的實(shí)體通過(guò)抽象生成類(lèi)的過(guò)程世界中的實(shí)體通過(guò)抽象生成類(lèi)的過(guò)程實(shí)體 屬性 行為 現(xiàn)實(shí)世界 抽象 程序設(shè)計(jì) (數(shù)據(jù),數(shù)據(jù),) (函數(shù),函數(shù),) public private C+類(lèi)名 C+類(lèi)類(lèi)C+類(lèi)的聲

6、明形式類(lèi)是一種用戶自定義類(lèi)型,聲明形式:class private:;public:;protected:;無(wú)順序關(guān)系,無(wú)順序關(guān)系,每部分允許每部分允許出現(xiàn)多次出現(xiàn)多次C+類(lèi)類(lèi)公有類(lèi)型成員在關(guān)鍵字public后面聲明,它們是類(lèi)與外部的接口,任何外部函數(shù)都可以訪問(wèn)公有類(lèi)型數(shù)據(jù)和函數(shù), 但必須通過(guò)一個(gè)對(duì)象作為對(duì)象的成員使用。C+類(lèi)類(lèi)私有類(lèi)型成員在關(guān)鍵字private后面聲明,只允許本類(lèi)中的函數(shù)訪問(wèn),而類(lèi)外部的任何函數(shù)都不能訪問(wèn)。如果緊跟在類(lèi)名稱(chēng)的后面聲明私有成員,則關(guān)鍵字private可以省略。C+類(lèi)類(lèi)保護(hù)類(lèi)型成員在關(guān)鍵字protected后面聲明。與private類(lèi)似,其差別表現(xiàn)在繼承與派生時(shí)對(duì)

7、派生類(lèi)的影響不同。C+類(lèi)類(lèi)class Timeprivate:/ 最好不要省略最好不要省略private int hour;/ 數(shù)據(jù)成員,表示小時(shí)數(shù)據(jù)成員,表示小時(shí) int minute;/ 數(shù)據(jù)成員,表示分鐘數(shù)據(jù)成員,表示分鐘 int second;/ 數(shù)據(jù)成員,表示秒數(shù)據(jù)成員,表示秒public: void setTime(int, int, int);/ 成員函數(shù),設(shè)置時(shí)間成員函數(shù),設(shè)置時(shí)間 void showTime();/ 成員函數(shù),輸出時(shí)間成員函數(shù),輸出時(shí)間;例 定義類(lèi)定義類(lèi)Time(表示時(shí)間)。(表示時(shí)間)。私有數(shù)據(jù)成員私有數(shù)據(jù)成員hourhour、minuteminute和和s

8、econdsecond只能在類(lèi)的成員只能在類(lèi)的成員函數(shù)中被訪問(wèn)或賦值;函數(shù)中被訪問(wèn)或賦值;公有成員函數(shù)公有成員函數(shù)setTimesetTime、showTimeshowTime可在外部被調(diào)用,但必須通過(guò)一個(gè)可在外部被調(diào)用,但必須通過(guò)一個(gè)對(duì)象作為對(duì)象的成員使用。對(duì)象作為對(duì)象的成員使用。C+類(lèi)類(lèi)類(lèi)的實(shí)現(xiàn)類(lèi)的實(shí)現(xiàn)實(shí)質(zhì)上是類(lèi)的成員函數(shù)的實(shí)現(xiàn),即定義類(lèi)的成員函數(shù)。成員函數(shù)的定義形式與一般函數(shù)的定義形式基本相同,但必須在成員函數(shù)名前加上類(lèi)名和作用域限定符(:)。成員函數(shù)的定義也可放在類(lèi)體內(nèi)(該函數(shù)聲明之處),這時(shí)成員函數(shù)將變成內(nèi)聯(lián)函數(shù)。C+類(lèi)類(lèi)例 類(lèi)Time的實(shí)現(xiàn)void Time:setTime(int

9、 h, int m, int s) hour=(h=0 & h=0 & m=0 & s60) ? s:0;void Time:showTime() couthour:minute:second成員名”方式訪問(wèn) public 屬性的成員C+類(lèi)類(lèi)例:類(lèi)Time的使用,聲明對(duì)象并設(shè)置對(duì)象屬性main() Time EndTime;/ 聲明對(duì)象EndTime EndTime.setTime(12, 23, 36);/ 設(shè)置對(duì)象EndTime的時(shí)間 coutThe time is:; EndTime.showTime();/ 顯示對(duì)象EndTime的時(shí)間階段課程小結(jié)理解結(jié)構(gòu)化設(shè)計(jì)

10、方法與面向?qū)ο蠓椒ǖ膮^(qū)別熟悉面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,學(xué)習(xí)用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)程序 理解掌握下列定義:對(duì)象、類(lèi)、封裝、繼承、多態(tài)性對(duì)象、類(lèi)、封裝、繼承、多態(tài)性類(lèi)的三個(gè)組成部分:類(lèi)名、屬性和方法類(lèi)名、屬性和方法理解封裝與繼承的意義,以及與對(duì)現(xiàn)實(shí)世界抽象的聯(lián)系多態(tài)性及其作用。熟悉類(lèi)的定義、實(shí)現(xiàn)和使用了解對(duì)象和類(lèi)的關(guān)系階段小結(jié)(續(xù))例:輸入任意短語(yǔ)或句子,計(jì)算該短語(yǔ)包含多少個(gè)字(word)和字符(character)。注意:輸入短語(yǔ)時(shí),必須在字和字之間只空一格面向過(guò)程的方法#include #include void main() char ch; int wdcount,chcount; wdcou

11、nt=1; chcount=0; printf(*:Please input any phrasen); while(ch=getche()!=r) /r表示換行 chcount+; if(ch= ) wdcount+; printf(n*:The number of word is %dn,wdcount); printf(n*:The number of char is %dn,chcount);面向?qū)ο蠓椒?include #include class countpublic: count(); void process(); void display();private: int wd

12、count,chcount;count:count() wdcount=1; chcount=0;void count:display() printf(n*:The number of word is %dn,wdcount); printf(n*:The number of char is %dn,chcount);void count:process() char ch; cout*:Please input any phrasech; while(ch=getche()!=r) chcount+; if(ch= ) wdcount+; coutendl; void main() count A; A.process(); A.display();運(yùn)行結(jié)果:運(yùn)行結(jié)果:*Please input any phrase.I am a teacher*:The number of word is 4*:The number of char is 14*是一種數(shù)學(xué)思維或計(jì)算機(jī)是一種數(shù)學(xué)思維或計(jì)算機(jī)思維方法,與人們認(rèn)識(shí)世思維方法,與人們認(rèn)識(shí)世界的方法不同界的方法不同 *以不穩(wěn)定的、多變的以不穩(wěn)定的、多變的“過(guò)過(guò)程程”和和“操作操作” 為中心來(lái)為中心來(lái)構(gòu)造系統(tǒng)構(gòu)造系統(tǒng) *可重用性較差可重用性較差*是建

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論