程序設(shè)計(jì)劉振安_第1頁(yè)
程序設(shè)計(jì)劉振安_第2頁(yè)
程序設(shè)計(jì)劉振安_第3頁(yè)
程序設(shè)計(jì)劉振安_第4頁(yè)
程序設(shè)計(jì)劉振安_第5頁(yè)
已閱讀5頁(yè),還剩353頁(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(優(yōu)選)程序設(shè)計(jì)劉振安現(xiàn)在是1頁(yè)\一共有358頁(yè)\編輯于星期一2需要了解的C語(yǔ)言知識(shí)C語(yǔ)言基本語(yǔ)法Ifelse語(yǔ)句For語(yǔ)句While語(yǔ)句數(shù)組定義函數(shù)定義指針結(jié)構(gòu)體運(yùn)算符現(xiàn)在是2頁(yè)\一共有358頁(yè)\編輯于星期一3第一章認(rèn)識(shí)C++的對(duì)象本節(jié)要點(diǎn):C與C++的關(guān)系(領(lǐng)會(huì))掌握函數(shù)原型和命名空間的使用方法(綜合應(yīng)用)對(duì)象和預(yù)處理基本概念(領(lǐng)會(huì))掌握C++程序的基本結(jié)構(gòu)(綜合應(yīng)用)1.1初識(shí)C++的函數(shù)和對(duì)象現(xiàn)在是3頁(yè)\一共有358頁(yè)\編輯于星期一4第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象C語(yǔ)言回顧intx;該語(yǔ)句在C語(yǔ)言和C++中均可使用,x在C語(yǔ)言中稱為變量,在C++中稱為對(duì)象。C語(yǔ)言與C++的不同點(diǎn):稱呼不同現(xiàn)在是4頁(yè)\一共有358頁(yè)\編輯于星期一5第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象C語(yǔ)言回顧結(jié)構(gòu)體的定義structpoint{floatx;

floaty;};表示定義一種點(diǎn)數(shù)據(jù)類(lèi)型,包含坐標(biāo)x,y.定義完成后,point成為一種類(lèi)型,使用方式類(lèi)似int類(lèi)型如:定義p1變量為點(diǎn)類(lèi)型,寫(xiě)作:structpointp1;或pointp1;定義x變量為整型:intx;現(xiàn)在是5頁(yè)\一共有358頁(yè)\編輯于星期一6第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象C語(yǔ)言回顧結(jié)構(gòu)體的定義structstudent{intnum;charname[10];

floatgrade;};若定義一種結(jié)構(gòu)體記錄學(xué)生信息包含學(xué)號(hào),姓名,成績(jī),如何定義?定義s1變量為學(xué)生類(lèi)型,寫(xiě)作:structstudents1;現(xiàn)在是6頁(yè)\一共有358頁(yè)\編輯于星期一7第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象例1.1輸入一個(gè)點(diǎn)的信息,求該點(diǎn)到原點(diǎn)的距離預(yù)處理命令,使用命名空間,聲明函數(shù),聲明常量,定義結(jié)構(gòu)體,主函數(shù)main求距離函數(shù)result現(xiàn)在是7頁(yè)\一共有358頁(yè)\編輯于星期一8例1.1現(xiàn)在是8頁(yè)\一共有358頁(yè)\編輯于星期一9例1.1主函數(shù)現(xiàn)在是9頁(yè)\一共有358頁(yè)\編輯于星期一10例1.1現(xiàn)在是10頁(yè)\一共有358頁(yè)\編輯于星期一11第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:1,混合型語(yǔ)言C語(yǔ)言程序包含main函數(shù)面向?qū)ο笳Z(yǔ)言沒(méi)有main函數(shù)C++是混合型語(yǔ)言現(xiàn)在是11頁(yè)\一共有358頁(yè)\編輯于星期一12第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:2,注釋方式/*。。。。*///。。?!,F(xiàn)在是12頁(yè)\一共有358頁(yè)\編輯于星期一13第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:3,輸入輸出流cin和cout是C++語(yǔ)言中進(jìn)行輸入輸出操作的函數(shù)。其定義在isstream頭文件中。類(lèi)似:C語(yǔ)言中printf函數(shù)scanf函數(shù)putchar函數(shù)getchar函數(shù),使用時(shí)要包含“stdio.h”現(xiàn)在是13頁(yè)\一共有358頁(yè)\編輯于星期一14第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:3,輸入輸出流cin和cout函數(shù)的簡(jiǎn)單使用cout<<后加要輸出的內(nèi)容,可以是對(duì)象或字符串,行末加分號(hào),可用多個(gè)<<來(lái)分隔多個(gè)輸出對(duì)象,<<endl;表示輸出后換行。cout<<endl;等價(jià)于cout<<“\n”;現(xiàn)在是14頁(yè)\一共有358頁(yè)\編輯于星期一15第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:3,輸入輸出流cin和cout函數(shù)的簡(jiǎn)單使用cin>>后加存放數(shù)據(jù)的對(duì)象,即變量,行末加分號(hào),可用多個(gè)>>來(lái)分隔多個(gè)輸入對(duì)象。cin>>x>>y;等價(jià)于cin>>x;cin>>y;現(xiàn)在是15頁(yè)\一共有358頁(yè)\編輯于星期一16第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:4,使用命名空間是C++語(yǔ)言中封裝程序庫(kù)名稱的一種機(jī)制記憶:C++標(biāo)準(zhǔn)類(lèi)庫(kù)中的對(duì)象和函數(shù)都屬于std命名空間使用這些對(duì)象和函數(shù)時(shí)要usingnamespacestd現(xiàn)在是16頁(yè)\一共有358頁(yè)\編輯于星期一17第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:4,使用命名空間使用std命名空間時(shí)注意:使用C語(yǔ)言中的頭文件時(shí),要寫(xiě)成“xxx.h”形式使用C++中的頭文件則不能加上“.h”現(xiàn)在是17頁(yè)\一共有358頁(yè)\編輯于星期一18第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:5,對(duì)象定義及初始化intx;x=0;等價(jià)于intx=0;C語(yǔ)言intx(0);C++語(yǔ)言等價(jià)于上兩條語(yǔ)句。此種初始化語(yǔ)法在C++中稱為構(gòu)造函數(shù)語(yǔ)法現(xiàn)在是18頁(yè)\一共有358頁(yè)\編輯于星期一19第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:6,函數(shù)原型及其返回值函數(shù)要有類(lèi)型,若要得到處理結(jié)果則要使用return語(yǔ)句?,F(xiàn)在是19頁(yè)\一共有358頁(yè)\編輯于星期一20第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:6,函數(shù)原型及其返回值函數(shù)原型聲明函數(shù)調(diào)用在函數(shù)定義之前時(shí)要對(duì)函數(shù)進(jìn)行聲明現(xiàn)在是20頁(yè)\一共有358頁(yè)\編輯于星期一21現(xiàn)在是21頁(yè)\一共有358頁(yè)\編輯于星期一22第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:7,const修飾符和預(yù)處理程序常量定義:#definePI3.1415(c語(yǔ)言)在變量定義之前加上const關(guān)鍵字,表示定義的變量值不可改變。constintPI=3.1415;constintPI(3.1415);現(xiàn)在是22頁(yè)\一共有358頁(yè)\編輯于星期一23第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:7,const修飾符和預(yù)處理程序常量定義:#definePI3.1415#define命令的特點(diǎn):原樣替換掉程序中出現(xiàn)的預(yù)定義宏名符號(hào)如:#defineBUFFER100若程序出現(xiàn):x=BUFFER/3;x=?盡量選擇const定義常量現(xiàn)在是23頁(yè)\一共有358頁(yè)\編輯于星期一24第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:7,const修飾符和預(yù)處理程序const關(guān)鍵字的特點(diǎn):利用const定義常量時(shí)必須給出常量的值,除非該常量是extern的。如:constintd;

externconst;作業(yè):1,extern變量是什么樣的變量?現(xiàn)在是24頁(yè)\一共有358頁(yè)\編輯于星期一25第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:7,const修飾符和預(yù)處理程序C++預(yù)處理命令以#開(kāi)始,分為宏定義,文件包含和條件編譯作業(yè):2,寫(xiě)出C語(yǔ)言中預(yù)處理命令有哪些,舉例說(shuō)明每個(gè)命令含義及作用。3,寫(xiě)出C語(yǔ)言和C++語(yǔ)言中#include命令的不同處現(xiàn)在是25頁(yè)\一共有358頁(yè)\編輯于星期一26第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:8,程序運(yùn)行結(jié)果現(xiàn)在是26頁(yè)\一共有358頁(yè)\編輯于星期一27第一章認(rèn)識(shí)C++的對(duì)象1.1初識(shí)C++的函數(shù)和對(duì)象對(duì)程序的說(shuō)明:9,程序書(shū)寫(xiě)規(guī)則注意縮進(jìn)對(duì)齊,使程序清晰明了現(xiàn)在是27頁(yè)\一共有358頁(yè)\編輯于星期一281.2認(rèn)識(shí)C++語(yǔ)言面向過(guò)程編程的特點(diǎn)本節(jié)要點(diǎn):函數(shù)重載(領(lǐng)會(huì))掌握C++的新數(shù)據(jù)類(lèi)型(簡(jiǎn)單應(yīng)用)動(dòng)態(tài)分配內(nèi)存(綜合應(yīng)用)熟練掌握引用的使用方法(綜合應(yīng)用)了解對(duì)指針使用const限定符的目的,方法(識(shí)記)了解泛型算法應(yīng)用于普通數(shù)組的方法(識(shí)記)掌握數(shù)據(jù)的簡(jiǎn)單輸入輸出(簡(jiǎn)單應(yīng)用)現(xiàn)在是28頁(yè)\一共有358頁(yè)\編輯于星期一29第一章認(rèn)識(shí)C++的對(duì)象1.2認(rèn)識(shí)C++語(yǔ)言面向過(guò)程編程的特點(diǎn)本節(jié)要點(diǎn):1.2.1函數(shù)重載(領(lǐng)會(huì))C++允許一個(gè)函數(shù)定義多個(gè)版本。使得一個(gè)函數(shù)完成多種功能。即:同一個(gè)函數(shù)名定義多次?,F(xiàn)在是29頁(yè)\一共有358頁(yè)\編輯于星期一301.2.1函數(shù)重載(領(lǐng)會(huì))重載函數(shù)max的調(diào)用形式:現(xiàn)在是30頁(yè)\一共有358頁(yè)\編輯于星期一311.2.1函數(shù)重載(領(lǐng)會(huì))重載函數(shù)max的定義形式:現(xiàn)在是31頁(yè)\一共有358頁(yè)\編輯于星期一321.2.1函數(shù)重載(領(lǐng)會(huì))重載函數(shù)max的聲明形式:可否不聲明??重載函數(shù)的要點(diǎn):函數(shù)名相同,參數(shù)個(gè)數(shù)不同,參數(shù)類(lèi)型不同現(xiàn)在是32頁(yè)\一共有358頁(yè)\編輯于星期一331.2.2C++的新數(shù)據(jù)類(lèi)型(簡(jiǎn)單應(yīng)用)1,void類(lèi)型void表示無(wú)類(lèi)型,或空類(lèi)型。不能聲明變量,只能聲明函數(shù)返回值。表示函數(shù)無(wú)返回值?,F(xiàn)在是33頁(yè)\一共有358頁(yè)\編輯于星期一342,bool型(邏輯型,布爾型)占1個(gè)字節(jié)。表示邏輯運(yùn)算中的”真”

”假”3,整型(intlongshort)int、short至少16位long至少32位short不得比int長(zhǎng)int不得比long長(zhǎng)現(xiàn)在是34頁(yè)\一共有358頁(yè)\編輯于星期一354,char型(字符型)占1個(gè)字節(jié)。5,實(shí)型(float/double/longdouble)現(xiàn)在是35頁(yè)\一共有358頁(yè)\編輯于星期一365,&取地址符intx;&x表示????什么樣的變量可以存放&x?????int*p;p是指針變量,指針變量能存放變量的地址。P=&x;現(xiàn)在是36頁(yè)\一共有358頁(yè)\編輯于星期一376,常量表示整型:0前綴表示8進(jìn)制數(shù),0x前綴表示16進(jìn)制加L、l后綴表示長(zhǎng)整型常量實(shí)型:F、f后綴表示浮點(diǎn)型常量(float)實(shí)數(shù)加L、l后綴表示longdouble型無(wú)前綴,無(wú)后綴的為double型現(xiàn)在是37頁(yè)\一共有358頁(yè)\編輯于星期一386,常量表示0L123l0550x50xaf017,轉(zhuǎn)義字符‘\101’‘\t’‘\r’‘\n’‘\0’‘\x41’現(xiàn)在是38頁(yè)\一共有358頁(yè)\編輯于星期一391.2.3動(dòng)態(tài)分配內(nèi)存(綜合應(yīng)用)new動(dòng)態(tài)分配內(nèi)存一般格式:指針變量=new類(lèi)型[size];new運(yùn)算符得到新分配空間的首地址,賦值給指針變量后,可根據(jù)指針變量的加減運(yùn)算來(lái)使用這些空間。delete釋放內(nèi)存使用完畢后要釋放內(nèi)存deletep;pP+3P+1現(xiàn)在是39頁(yè)\一共有358頁(yè)\編輯于星期一401.2.4引用的使用方法(綜合應(yīng)用)C++中新的表示形式。引用即使用變量的別名。定義形式:數(shù)據(jù)類(lèi)型&別名=對(duì)象名;作用:別名與對(duì)象名對(duì)應(yīng)同一個(gè)對(duì)象,共用同一段內(nèi)存。對(duì)別名的修改會(huì)造成原對(duì)象的修改。例如:intx;int&a=x;表示a是變量x的別名。一旦定義別名后則a和x完全等價(jià)?,F(xiàn)在是40頁(yè)\一共有358頁(yè)\編輯于星期一411.2.4引用的使用方法(綜合應(yīng)用)C++中新的表示形式。引用即使用變量的別名。定義形式:數(shù)據(jù)類(lèi)型&別名=對(duì)象名;作用:別名與對(duì)象名對(duì)應(yīng)同一個(gè)對(duì)象,共用同一段內(nèi)存。對(duì)別名的修改會(huì)造成原對(duì)象的修改。例如:intx;int&a=x;表示a是變量x的別名。一旦定義別名后則a和x完全等價(jià)。現(xiàn)在是41頁(yè)\一共有358頁(yè)\編輯于星期一421.2.4引用的使用方法(綜合應(yīng)用)C++中新的表示形式。引用即使用變量的別名。定義形式:數(shù)據(jù)類(lèi)型&別名=對(duì)象名;現(xiàn)在是42頁(yè)\一共有358頁(yè)\編輯于星期一43使用引用時(shí)注意:1,不能定義引用的引用int&&r=x;2,不能直接定義數(shù)據(jù)組的引用現(xiàn)在是43頁(yè)\一共有358頁(yè)\編輯于星期一441.2.4引用的使用方法(綜合應(yīng)用)一般格式:typedef類(lèi)型類(lèi)型別名使用typedef定義某類(lèi)型別名后,可使用該別名來(lái)定義相關(guān)對(duì)象。例如:typedeflongintlint;則longinti;等價(jià)于linti;用法總結(jié):建立一個(gè)類(lèi)型別名的方法很簡(jiǎn)單,在傳統(tǒng)的變量聲明表達(dá)式里用類(lèi)型名替代變量名,然后把關(guān)鍵字typedef加在該語(yǔ)句的開(kāi)頭現(xiàn)在是44頁(yè)\一共有358頁(yè)\編輯于星期一45引用數(shù)組名作參數(shù)一般格式:typedef類(lèi)型類(lèi)型別名使用typedef定義某類(lèi)型別名后,可使用該別名來(lái)定義相關(guān)對(duì)象。例如:typedeflongintlint;則longinti;等價(jià)于linti;現(xiàn)在是45頁(yè)\一共有358頁(yè)\編輯于星期一46Typedef使用說(shuō)明typedef用法總結(jié):建立一個(gè)類(lèi)型別名的方法很簡(jiǎn)單,在傳統(tǒng)的變量聲明表達(dá)式里用類(lèi)型名替代變量名,然后把關(guān)鍵字typedef加在該語(yǔ)句的開(kāi)頭等價(jià)于現(xiàn)在是46頁(yè)\一共有358頁(yè)\編輯于星期一471.2.5對(duì)指針使用const限定符(識(shí)記)1,左值和右值表達(dá)式:E1=E2

E1是左值,是可被修改的int*p,x=1;*p=2;&p表示什么?現(xiàn)在是47頁(yè)\一共有358頁(yè)\編輯于星期一481.2.5對(duì)指針使用const限定符(識(shí)記)2,指向常量的指針const常量定義,表示const后的表達(dá)式不可改變,定義時(shí)必須給出表達(dá)式的值。intx=11;constint*P;constint*P=&x;表示*P是不可改變的。*P不能在=左側(cè)。P=&y;x=12;現(xiàn)在是48頁(yè)\一共有358頁(yè)\編輯于星期一491.2.5對(duì)指針使用const限定符(識(shí)記)3,常量指針const常量定義,表示const后的表達(dá)式不可改變,定義時(shí)必須給出表達(dá)式的值。intx=11;int*constP;錯(cuò)!必須初始化int*constP=&x;表示P是不可改變的。P不能在=左側(cè)。*p可改變?,F(xiàn)在是49頁(yè)\一共有358頁(yè)\編輯于星期一501.2.5對(duì)指針使用const限定符(識(shí)記)4,指向常量的常量指針const常量定義,表示const后的表達(dá)式不可改變,定義時(shí)必須給出表達(dá)式的值。intx=11;constint*constP=&x;表示P是不可改變的。*p不可改變?,F(xiàn)在是50頁(yè)\一共有358頁(yè)\編輯于星期一511.2.6泛型算法應(yīng)用于普通數(shù)組(識(shí)記)掌握數(shù)據(jù)的簡(jiǎn)單輸入輸出(簡(jiǎn)單應(yīng)用)泛型算法是C++標(biāo)準(zhǔn)模板庫(kù)(StandardTemplateLibrary)提供的一組操作。利用這些操作可以簡(jiǎn)化數(shù)組操作。要使用這些操作必須包含頭文件<algorithm>現(xiàn)在是51頁(yè)\一共有358頁(yè)\編輯于星期一521.2.6泛型算法應(yīng)用于普通數(shù)組(識(shí)記)假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:1,reverse(a,a+len)將數(shù)組a中的元素順序反轉(zhuǎn)。(逆向)2,copy(a,a+len,b)將a數(shù)組的內(nèi)容原樣復(fù)制給b數(shù)組reverse_copy(a,a+len,b)將a數(shù)組的內(nèi)容反轉(zhuǎn)后復(fù)制給b數(shù)組現(xiàn)在是52頁(yè)\一共有358頁(yè)\編輯于星期一531.2.6泛型算法應(yīng)用于普通數(shù)組(識(shí)記)假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:3,sort(a,a+len)將數(shù)組a中的元素按升序排序4,sort(a,a+len,greater<type>())將數(shù)組a中的元素按降序排序現(xiàn)在是53頁(yè)\一共有358頁(yè)\編輯于星期一541.2.6泛型算法應(yīng)用于普通數(shù)組(識(shí)記)假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:5,find(a,a+len,value)在數(shù)組a中查找值為value的元素,并返回位置指針現(xiàn)在是54頁(yè)\一共有358頁(yè)\編輯于星期一551.2.6泛型算法應(yīng)用于普通數(shù)組(識(shí)記)假定a,b是兩個(gè)數(shù)組名,其長(zhǎng)度為len操作示例:6,輸出數(shù)組中的內(nèi)容Copy(a,a+len,Ostream_iterator<type>(cout,”字符串”))Ostream_iterator表示輸出流操作符<type>:表示要輸出的數(shù)組類(lèi)型Cout表示流輸出操作“字符串”:表示分隔字符串現(xiàn)在是55頁(yè)\一共有358頁(yè)\編輯于星期一56第一章認(rèn)識(shí)C++的對(duì)象1.2認(rèn)識(shí)C++語(yǔ)言面向過(guò)程編程的特點(diǎn)本節(jié)要點(diǎn):1.2.7數(shù)據(jù)的簡(jiǎn)單輸入輸出(簡(jiǎn)單應(yīng)用)現(xiàn)在是56頁(yè)\一共有358頁(yè)\編輯于星期一57第一章認(rèn)識(shí)C++的對(duì)象1.3程序的編輯、編譯、運(yùn)行現(xiàn)在是57頁(yè)\一共有358頁(yè)\編輯于星期一58第一章認(rèn)識(shí)C++的對(duì)象課后題:P26三、改錯(cuò)題寫(xiě)作業(yè)本上現(xiàn)在是58頁(yè)\一共有358頁(yè)\編輯于星期一59第二章從結(jié)構(gòu)到類(lèi)的演變2.1結(jié)構(gòu)的演化2.1.1結(jié)構(gòu)發(fā)生質(zhì)的演變1.函數(shù)與數(shù)據(jù)共存C++允許結(jié)構(gòu)中定義函數(shù),成為成員函數(shù)在結(jié)構(gòu)中同時(shí)定義成員變量與成員函數(shù)使用格式:結(jié)構(gòu)對(duì)象.成員變量結(jié)構(gòu)對(duì)象.成員函數(shù)現(xiàn)在是59頁(yè)\一共有358頁(yè)\編輯于星期一60第二章從結(jié)構(gòu)到類(lèi)的演變1.函數(shù)與數(shù)據(jù)共存—結(jié)構(gòu)的定義structpoint{doublex,y;voidSetxy(doublea,doubleb){x=a;y=b;}voidDisplay(){cout<<x<<"\t"<<y<<endl;}};現(xiàn)在是60頁(yè)\一共有358頁(yè)\編輯于星期一61第二章從結(jié)構(gòu)到類(lèi)的演變1.函數(shù)與數(shù)據(jù)共存—結(jié)構(gòu)的定義structpoint{doublex,y;voidSetxy(doublea,doubleb){x=a;y=b;}voidDisplay(){cout<<x<<"\t"<<y<<endl;}};數(shù)據(jù)成員成員函數(shù)現(xiàn)在是61頁(yè)\一共有358頁(yè)\編輯于星期一62第二章從結(jié)構(gòu)到類(lèi)的演變1.函數(shù)與數(shù)據(jù)共存—結(jié)構(gòu)的定義現(xiàn)在是62頁(yè)\一共有358頁(yè)\編輯于星期一63第二章從結(jié)構(gòu)到類(lèi)的演變運(yùn)行結(jié)果現(xiàn)在是63頁(yè)\一共有358頁(yè)\編輯于星期一64第二章從結(jié)構(gòu)到類(lèi)的演變主函數(shù)現(xiàn)在是64頁(yè)\一共有358頁(yè)\編輯于星期一65完整程序現(xiàn)在是65頁(yè)\一共有358頁(yè)\編輯于星期一66修改后的程序現(xiàn)在是66頁(yè)\一共有358頁(yè)\編輯于星期一67第二章從結(jié)構(gòu)到類(lèi)的演變2封裝若定義結(jié)構(gòu)體時(shí),使用了private關(guān)鍵字,則產(chǎn)生封裝性現(xiàn)在是67頁(yè)\一共有358頁(yè)\編輯于星期一68使用了private關(guān)鍵字,則產(chǎn)生封裝性現(xiàn)在是68頁(yè)\一共有358頁(yè)\編輯于星期一69第二章從結(jié)構(gòu)到類(lèi)的演變2封裝在定義結(jié)構(gòu)時(shí),若使用了private則產(chǎn)生封裝性,表示成員為私有的,只能在結(jié)構(gòu)體內(nèi)部通過(guò)公有成員函數(shù)使用。若未添加private則表示默認(rèn)為public。類(lèi)定義時(shí)默認(rèn)為private。現(xiàn)在是69頁(yè)\一共有358頁(yè)\編輯于星期一70第二章從結(jié)構(gòu)到類(lèi)的演變2.1.2使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對(duì)象在定義結(jié)構(gòu)時(shí),與結(jié)構(gòu)同名的函數(shù)稱為構(gòu)造函數(shù)。若定義的函數(shù)與某個(gè)已定義函數(shù)重名而參數(shù)類(lèi)型或個(gè)數(shù)不同,則稱為函數(shù)重載?,F(xiàn)在是70頁(yè)\一共有358頁(yè)\編輯于星期一712.1.2使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對(duì)象問(wèn)題:那個(gè)函數(shù)是構(gòu)造函數(shù)?那個(gè)函數(shù)被重載了?結(jié)構(gòu)體的定義現(xiàn)在是71頁(yè)\一共有358頁(yè)\編輯于星期一722.1.2使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對(duì)象注:構(gòu)造函數(shù)在定義結(jié)構(gòu)體對(duì)象時(shí)自動(dòng)執(zhí)行,并根據(jù)是否初始化來(lái)自動(dòng)選擇所調(diào)用的構(gòu)造函數(shù)現(xiàn)在是72頁(yè)\一共有358頁(yè)\編輯于星期一732.1.2使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對(duì)象調(diào)用無(wú)參構(gòu)造函數(shù)調(diào)用有參構(gòu)造函數(shù)為xy設(shè)置值顯示p1,p2的xy值現(xiàn)在是73頁(yè)\一共有358頁(yè)\編輯于星期一742.1.2使用構(gòu)造函數(shù)初始化結(jié)構(gòu)的對(duì)象現(xiàn)在是74頁(yè)\一共有358頁(yè)\編輯于星期一75第二章從結(jié)構(gòu)到類(lèi)的演變2.2從結(jié)構(gòu)演化成一個(gè)簡(jiǎn)單的類(lèi)將程序中struct替換為class即變?yōu)轭?lèi)的標(biāo)準(zhǔn)定義形式現(xiàn)在是75頁(yè)\一共有358頁(yè)\編輯于星期一76第二章從結(jié)構(gòu)到類(lèi)的演變2.2從結(jié)構(gòu)演化成一個(gè)簡(jiǎn)單的類(lèi)產(chǎn)生類(lèi)對(duì)象p1,p2為對(duì)象的屬性賦值顯示對(duì)象屬性值現(xiàn)在是76頁(yè)\一共有358頁(yè)\編輯于星期一77第二章從結(jié)構(gòu)到類(lèi)的演變2.2從結(jié)構(gòu)演化成一個(gè)簡(jiǎn)單的類(lèi)類(lèi)圖的表示類(lèi)名類(lèi)屬性/成員變量類(lèi)操作/成員函數(shù)現(xiàn)在是77頁(yè)\一共有358頁(yè)\編輯于星期一78第二章從結(jié)構(gòu)到類(lèi)的演變2.3面向過(guò)程和面向?qū)ο蠛?jiǎn)單了解對(duì)象的含義現(xiàn)在是78頁(yè)\一共有358頁(yè)\編輯于星期一79第二章從結(jié)構(gòu)到類(lèi)的演變2.3面向過(guò)程和面向?qū)ο蠛?jiǎn)單了解對(duì)象的含義現(xiàn)在是79頁(yè)\一共有358頁(yè)\編輯于星期一80第二章從結(jié)構(gòu)到類(lèi)的演變2.3面向過(guò)程和面向?qū)ο蠛?jiǎn)單了解對(duì)象的含義現(xiàn)在是80頁(yè)\一共有358頁(yè)\編輯于星期一81第二章從結(jié)構(gòu)到類(lèi)的演變面向過(guò)程的求解步驟給出三角形三個(gè)頂點(diǎn)坐標(biāo),計(jì)算三邊長(zhǎng),并輸出步驟:輸入x1,y1,x2,y2,x3,y3六個(gè)數(shù)據(jù)計(jì)算(x1,y1)和(x2,y2)距離計(jì)算(x1,y1)和(x3,y3)距離計(jì)算(x2,y2)和(x3,y3)距離輸出三個(gè)距離現(xiàn)在是81頁(yè)\一共有358頁(yè)\編輯于星期一82第二章從結(jié)構(gòu)到類(lèi)的演變面向?qū)ο蟮那蠼獠襟E給出三角形三個(gè)頂點(diǎn)坐標(biāo),計(jì)算三邊長(zhǎng),并輸出設(shè)計(jì)類(lèi)將點(diǎn)設(shè)計(jì)為一個(gè)類(lèi),并提供相關(guān)的屬性和操作現(xiàn)在是82頁(yè)\一共有358頁(yè)\編輯于星期一83第二章從結(jié)構(gòu)到類(lèi)的演變面向?qū)ο蟮那蠼獠襟E給出三角形三個(gè)頂點(diǎn)坐標(biāo),計(jì)算三邊長(zhǎng),并輸出定義對(duì)象同時(shí)給出坐標(biāo)pointA(x1,y1)pointB(x2,y2)pointC(x3,y3)現(xiàn)在是83頁(yè)\一共有358頁(yè)\編輯于星期一84第二章從結(jié)構(gòu)到類(lèi)的演變面向?qū)ο蟮那蠼獠襟E給出三角形三個(gè)頂點(diǎn)坐標(biāo),計(jì)算三邊長(zhǎng),并輸出定義對(duì)象,然后獲取坐標(biāo)pointA;pointB;pointC;A.Getx();A.Gety();B.Getx();B.Gety();C.Getx();C.Gety();現(xiàn)在是84頁(yè)\一共有358頁(yè)\編輯于星期一85第二章從結(jié)構(gòu)到類(lèi)的演變面向?qū)ο蟮那蠼獠襟E給出三角形三個(gè)頂點(diǎn)坐標(biāo),計(jì)算三邊長(zhǎng),并輸出計(jì)算距離并輸出AB=A.GetLength(B);AC=A.GetLength(C);BC=B.GetLength(C);現(xiàn)在是85頁(yè)\一共有358頁(yè)\編輯于星期一86第二章從結(jié)構(gòu)到類(lèi)的演變2.4C++面向?qū)ο蟪绦蛟O(shè)計(jì)特點(diǎn)2.4.1對(duì)象三要素:對(duì)象名,屬性,操作現(xiàn)在是86頁(yè)\一共有358頁(yè)\編輯于星期一87第二章從結(jié)構(gòu)到類(lèi)的演變2.4C++面向?qū)ο蟪绦蛟O(shè)計(jì)特點(diǎn)2.4.1對(duì)象三要素:對(duì)象名,屬性,操作現(xiàn)在是87頁(yè)\一共有358頁(yè)\編輯于星期一88第二章從結(jié)構(gòu)到類(lèi)的演變2.5使用類(lèi)和對(duì)象2.5.1使用string對(duì)象類(lèi)名類(lèi)的屬性用于存放字符串類(lèi)的操作/方法/成員函數(shù)現(xiàn)在是88頁(yè)\一共有358頁(yè)\編輯于星期一89第二章從結(jié)構(gòu)到類(lèi)的演變2.5使用類(lèi)和對(duì)象2.5.1使用string對(duì)象該類(lèi)是C++語(yǔ)言中的內(nèi)部預(yù)定義類(lèi),要在程序中使用該類(lèi)時(shí)必須添加頭文件#inculude<string>現(xiàn)在是89頁(yè)\一共有358頁(yè)\編輯于星期一90第二章從結(jié)構(gòu)到類(lèi)的演變2.5使用類(lèi)和對(duì)象2.5.1使用string對(duì)象類(lèi)的初始化:stringstr1=“A”;

stringstr1=‘A’;

stringstr1=‘AB’;

stringstr1=“AB”;可以以數(shù)組的形式使用str1對(duì)象中的字符串str1[0]的值是???str1[1]的值是???現(xiàn)在是90頁(yè)\一共有358頁(yè)\編輯于星期一912.5.1使用string對(duì)象類(lèi)的初始化:stringstr1(“hello,”);

stringstr2=“world”;可以以數(shù)組的形式使用str1對(duì)象中的字符串str1[0]的值是???str2[0]的值是???現(xiàn)在是91頁(yè)\一共有358頁(yè)\編輯于星期一922.5.1使用string對(duì)象現(xiàn)在是92頁(yè)\一共有358頁(yè)\編輯于星期一932.5.1使用string對(duì)象運(yùn)行結(jié)果現(xiàn)在是93頁(yè)\一共有358頁(yè)\編輯于星期一942.5.1使用string對(duì)象string對(duì)象允許使用+運(yùn)算現(xiàn)在是94頁(yè)\一共有358頁(yè)\編輯于星期一952.5.1使用string對(duì)象對(duì)象的方法(操作/成員函數(shù)):對(duì)象名.成員函數(shù)str1.size()String對(duì)象可使用+運(yùn)算Str1=str2+str3若str2=“hello,”

str3=“everyone”則str1的結(jié)果是???現(xiàn)在是95頁(yè)\一共有358頁(yè)\編輯于星期一962.5.2使用string對(duì)象的成員函數(shù)成員函數(shù)使用格式:對(duì)象名.成員函數(shù)例如:str1.size()若Str1=“everyone!”Str1.size()值為:9現(xiàn)在是96頁(yè)\一共有358頁(yè)\編輯于星期一972.5.2使用string對(duì)象的成員函數(shù)成員函數(shù)使用格式:對(duì)象名.成員函數(shù)例如:str1.substr()若Str1=“everyone”Str1.substr(5,3)值為:“one”C++中字符串中字符位置計(jì)數(shù)從0開(kāi)始現(xiàn)在是97頁(yè)\一共有358頁(yè)\編輯于星期一982.5.2使用string對(duì)象的成員函數(shù)成員函數(shù)使用格式:對(duì)象名.成員函數(shù)例如:str1.substr()C++中字符串中字符位置計(jì)數(shù)從0開(kāi)始現(xiàn)在是98頁(yè)\一共有358頁(yè)\編輯于星期一992.5.2使用string對(duì)象的成員函數(shù)成員函數(shù)使用格式:對(duì)象名.成員函數(shù)例如:str1.find(要查找的字符串,開(kāi)始位置)結(jié)果為子串的位置C++中字符串中字符位置計(jì)數(shù)從0開(kāi)始現(xiàn)在是99頁(yè)\一共有358頁(yè)\編輯于星期一1002.5.2使用string對(duì)象的成員函數(shù)getline函數(shù)的使用功能:利用cin函數(shù)輸入一行字符串存入對(duì)象例如:getline(cin,str1,’\n’)現(xiàn)在是100頁(yè)\一共有358頁(yè)\編輯于星期一1012.5.2使用string對(duì)象的成員函數(shù)getline函數(shù)的使用功能:利用cin函數(shù)輸入一行字符串存入對(duì)象例如:getline(cin,str1,’\n’)現(xiàn)在是101頁(yè)\一共有358頁(yè)\編輯于星期一102簡(jiǎn)單應(yīng)用:日期格式轉(zhuǎn)換現(xiàn)在是102頁(yè)\一共有358頁(yè)\編輯于星期一1032.5.3使用complex對(duì)象complex類(lèi)用于定義一個(gè)復(fù)數(shù)對(duì)象使用時(shí)添加頭文件#include<complex>定義格式:complex<int>num1(1,2);現(xiàn)在是103頁(yè)\一共有358頁(yè)\編輯于星期一1042.5.4使用對(duì)象小結(jié)使用標(biāo)準(zhǔn)類(lèi)庫(kù)中的類(lèi)時(shí),須添加頭文件。使用string對(duì)象添加???頭文件?添加頭文件#include<string>并使用標(biāo)準(zhǔn)命名空間usingnamespacestd;現(xiàn)在是104頁(yè)\一共有358頁(yè)\編輯于星期一1052.5.4使用對(duì)象小結(jié)使用標(biāo)準(zhǔn)類(lèi)庫(kù)中的類(lèi)時(shí),須添加頭文件。定義對(duì)象方式同變量定義方式。定義對(duì)象時(shí)可對(duì)對(duì)象進(jìn)行初始化。inti;stringstr1;定義時(shí)初始化:inti=1;或inti(1);stringstr1=“hello”;或stringstr1(“hello”);現(xiàn)在是105頁(yè)\一共有358頁(yè)\編輯于星期一1062.5.4使用對(duì)象小結(jié)使用標(biāo)準(zhǔn)類(lèi)庫(kù)中的類(lèi)時(shí),須添加頭文件。定義對(duì)象方式同變量定義方式。同類(lèi)的不同對(duì)象由對(duì)象名和屬性來(lái)區(qū)分。具有相同的成員函數(shù)。stringstr1=“hello”;stringstr2(“everyone”);Cout<<str1.size()<<endl;Cout<<str2.size()<<endl;現(xiàn)在是106頁(yè)\一共有358頁(yè)\編輯于星期一1072.5.4使用對(duì)象小結(jié)不同類(lèi)對(duì)象具有不同的成員函數(shù)可實(shí)現(xiàn)不同操作。Complexnum1(1,2);Stringstr1(“hello”);Cout<<num1.real()<<endl;Cout<<str1.size<<endl;Cout<<str1<<endl;cout<<num1<<endl;現(xiàn)在是107頁(yè)\一共有358頁(yè)\編輯于星期一1082.5.4使用對(duì)象小結(jié)使用標(biāo)準(zhǔn)類(lèi)庫(kù)中的類(lèi)時(shí),須添加頭文件。定義對(duì)象方式同變量定義方式。定義對(duì)象時(shí)可對(duì)對(duì)象進(jìn)行初始化。同類(lèi)的不同對(duì)象由對(duì)象屬性來(lái)區(qū)分。不同類(lèi)對(duì)象具有不同的成員函數(shù)可實(shí)現(xiàn)不同操作。類(lèi)是具有相同特征和操作的對(duì)象的抽象?,F(xiàn)在是108頁(yè)\一共有358頁(yè)\編輯于星期一1092.6string對(duì)象數(shù)組與泛型算法現(xiàn)在是109頁(yè)\一共有358頁(yè)\編輯于星期一110第三章函數(shù)和函數(shù)模版3.1函數(shù)的參數(shù)及其傳遞方式C語(yǔ)言中參數(shù)傳遞方式只有一種:值傳遞值傳遞分為:變量值傳遞和變量地址值傳遞C++中分為:值傳遞和地址傳遞(引用傳遞)現(xiàn)在是110頁(yè)\一共有358頁(yè)\編輯于星期一1113.1函數(shù)的參數(shù)及其傳遞方式12ba

xy12

t12

xy現(xiàn)在是111頁(yè)\一共有358頁(yè)\編輯于星期一1123.1函數(shù)的參數(shù)及其傳遞方式12ba20002002

xy

t20002002現(xiàn)在是112頁(yè)\一共有358頁(yè)\編輯于星期一1133.1函數(shù)的參數(shù)及其傳遞方式要注意區(qū)分:參數(shù)傳遞中傳地址和傳地址值不同。設(shè)計(jì)函數(shù)時(shí)要注意:對(duì)象作參數(shù),對(duì)象指針作參數(shù),對(duì)象引用作參數(shù)現(xiàn)在是113頁(yè)\一共有358頁(yè)\編輯于星期一1143.1函數(shù)的參數(shù)及其傳遞方式3.1.1對(duì)象作函數(shù)參數(shù)作用同C語(yǔ)言中普通變量作參數(shù)現(xiàn)在是114頁(yè)\一共有358頁(yè)\編輯于星期一1153.1函數(shù)的參數(shù)及其傳遞方式3.1.2對(duì)象指針作函數(shù)參數(shù)作用同C語(yǔ)言中變量指針作參數(shù)現(xiàn)在是115頁(yè)\一共有358頁(yè)\編輯于星期一1163.1函數(shù)的參數(shù)及其傳遞方式3.1.3引用作為函數(shù)參數(shù)引用的聲明形式:數(shù)據(jù)類(lèi)型&別名=對(duì)象名;intx=56;int&a=x;int&b=a;則a為x變量(對(duì)象)的引用,a和x對(duì)應(yīng)同一個(gè)內(nèi)存空間。a未單獨(dú)分配內(nèi)存。b為a的引用。現(xiàn)在是116頁(yè)\一共有358頁(yè)\編輯于星期一1173.1函數(shù)的參數(shù)及其傳遞方式3.1.3引用作為函數(shù)參數(shù)引用的聲明形式:數(shù)據(jù)類(lèi)型&別名=對(duì)象名;intx=56;int&a=x;int&b=a;b=10;則a為x變量(對(duì)象)的引用,a和x對(duì)應(yīng)同一個(gè)內(nèi)存空間。a未單獨(dú)分配內(nèi)存。b為a的引用。程序中引用對(duì)象的改變會(huì)使得被引用對(duì)象發(fā)生改變?,F(xiàn)在是117頁(yè)\一共有358頁(yè)\編輯于星期一1183.1函數(shù)的參數(shù)及其傳遞方式3.1.3引用作為函數(shù)參數(shù)引用作函數(shù)參數(shù):類(lèi)型函數(shù)名(類(lèi)型&參數(shù),……)函數(shù)調(diào)用時(shí),實(shí)參對(duì)象名傳遞給形參對(duì)象名,形參對(duì)象名成為實(shí)參的別名,函數(shù)中對(duì)形參的改變就會(huì)導(dǎo)致實(shí)參值的改變。現(xiàn)在是118頁(yè)\一共有358頁(yè)\編輯于星期一1193.1函數(shù)的參數(shù)及其傳遞方式3.1.3引用作為函數(shù)參數(shù)引用作函數(shù)參數(shù):類(lèi)型函數(shù)名(類(lèi)型&參數(shù),……)函數(shù)調(diào)用時(shí),實(shí)參對(duì)象名傳遞給形參對(duì)象名,形參對(duì)象名成為實(shí)參的別名,函數(shù)中對(duì)形參的改變就會(huì)導(dǎo)致實(shí)參值的改變。現(xiàn)在是119頁(yè)\一共有358頁(yè)\編輯于星期一1203.1函數(shù)的參數(shù)及其傳遞方式3.1.3引用作為函數(shù)參數(shù)引用作函數(shù)參數(shù):類(lèi)型函數(shù)名(類(lèi)型&參數(shù),……)現(xiàn)在是120頁(yè)\一共有358頁(yè)\編輯于星期一1213.1函數(shù)的參數(shù)及其傳遞方式3.1.3引用作為函數(shù)參數(shù)引用作函數(shù)參數(shù)說(shuō)明:1,引用對(duì)象不是一個(gè)獨(dú)立對(duì)象,不占用內(nèi)存。2,對(duì)象的指針作參數(shù)時(shí),指針變量中存放實(shí)參對(duì)象的地址。3,引用對(duì)象作參數(shù)時(shí),函數(shù)調(diào)用時(shí)形參對(duì)象和實(shí)參對(duì)象共用一個(gè)內(nèi)存單元?,F(xiàn)在是121頁(yè)\一共有358頁(yè)\編輯于星期一122引用數(shù)組名作參數(shù)現(xiàn)在是122頁(yè)\一共有358頁(yè)\編輯于星期一123引用數(shù)組名作參數(shù)一般格式:typedef類(lèi)型類(lèi)型別名使用typedef定義某類(lèi)型別名后,可使用該別名來(lái)定義相關(guān)對(duì)象。例如:typedeflongintlint;則longinti;等價(jià)于linti;現(xiàn)在是123頁(yè)\一共有358頁(yè)\編輯于星期一124Typedef使用說(shuō)明typedef用法總結(jié):建立一個(gè)類(lèi)型別名的方法很簡(jiǎn)單,在傳統(tǒng)的變量聲明表達(dá)式里用類(lèi)型名替代變量名,然后把關(guān)鍵字typedef加在該語(yǔ)句的開(kāi)頭等價(jià)于現(xiàn)在是124頁(yè)\一共有358頁(yè)\編輯于星期一1253.1函數(shù)的參數(shù)及其傳遞方式3.1.4默認(rèn)參數(shù)函數(shù)調(diào)用時(shí),可以為函數(shù)指定實(shí)參,也可不指定實(shí)參,未指定實(shí)參時(shí),函數(shù)自動(dòng)取默認(rèn)值?,F(xiàn)在是125頁(yè)\一共有358頁(yè)\編輯于星期一1263.1函數(shù)的參數(shù)及其傳遞方式3.1.4默認(rèn)參數(shù)函數(shù)調(diào)用時(shí),可以為函數(shù)指定實(shí)參,也可不指定實(shí)參,未指定實(shí)參時(shí),函數(shù)自動(dòng)取默認(rèn)值。注意:若函數(shù)第n個(gè)參數(shù)是默認(rèn)參數(shù),當(dāng)調(diào)用函數(shù)需要指定該參數(shù)值時(shí),則該參數(shù)前的所有參數(shù)都必須指定?,F(xiàn)在是126頁(yè)\一共有358頁(yè)\編輯于星期一1273.1函數(shù)的參數(shù)及其傳遞方式3.1.5使用const保護(hù)數(shù)據(jù)const限定參數(shù)值不可修改?,F(xiàn)在是127頁(yè)\一共有358頁(yè)\編輯于星期一1283.2深入討論函數(shù)的返回值現(xiàn)在是128頁(yè)\一共有358頁(yè)\編輯于星期一1293.2深入討論函數(shù)的返回值3.2.1返回引用的函數(shù)現(xiàn)在是129頁(yè)\一共有358頁(yè)\編輯于星期一1303.2深入討論函數(shù)的返回值3.2.2返回指針的函數(shù)定義數(shù)據(jù)個(gè)數(shù)定義指向數(shù)據(jù)的指針利用input函數(shù)輸入數(shù)據(jù)若指向數(shù)據(jù)的指針?lè)强談t輸出數(shù)據(jù)現(xiàn)在是130頁(yè)\一共有358頁(yè)\編輯于星期一1313.2深入討論函數(shù)的返回值3.2.2返回指針的函數(shù)輸入數(shù)據(jù)個(gè)數(shù)存入n現(xiàn)在是131頁(yè)\一共有358頁(yè)\編輯于星期一1323.2深入討論函數(shù)的返回值3.2.3返回對(duì)象的函數(shù)現(xiàn)在是132頁(yè)\一共有358頁(yè)\編輯于星期一1333.2深入討論函數(shù)的返回值3.2.2返回指針的函數(shù)—補(bǔ)充說(shuō)明:new語(yǔ)句

delete語(yǔ)句

NULLNew格式:指針變量=new類(lèi)型[n]Delete格式:delete指針變量NULL表示空現(xiàn)在是133頁(yè)\一共有358頁(yè)\編輯于星期一1343.2深入討論函數(shù)的返回值現(xiàn)在是134頁(yè)\一共有358頁(yè)\編輯于星期一1353.2深入討論函數(shù)的返回值3.2.3返回對(duì)象的函數(shù)現(xiàn)在是135頁(yè)\一共有358頁(yè)\編輯于星期一1363.2深入討論函數(shù)的返回值3.2.4返回值作為函數(shù)參數(shù)現(xiàn)在是136頁(yè)\一共有358頁(yè)\編輯于星期一1373.3內(nèi)聯(lián)函數(shù)現(xiàn)在是137頁(yè)\一共有358頁(yè)\編輯于星期一138定義函數(shù)時(shí),加inline關(guān)鍵字表示該函數(shù)為內(nèi)聯(lián)函數(shù)。3.3內(nèi)聯(lián)函數(shù)現(xiàn)在是138頁(yè)\一共有358頁(yè)\編輯于星期一139定義函數(shù)時(shí),加inline關(guān)鍵字表示該函數(shù)為內(nèi)聯(lián)函數(shù)。程序中的內(nèi)聯(lián)函數(shù)在程序編譯時(shí),將函數(shù)體替換至程序中函數(shù)調(diào)用位置,造成程序變長(zhǎng),效率提高。注意:內(nèi)聯(lián)函數(shù)中不能出現(xiàn)循環(huán)、switch語(yǔ)句內(nèi)聯(lián)函數(shù)一般短小,不宜過(guò)長(zhǎng)應(yīng)在調(diào)用之前聲明或定義3.3內(nèi)聯(lián)函數(shù)現(xiàn)在是139頁(yè)\一共有358頁(yè)\編輯于星期一1403.4函數(shù)重載和默認(rèn)參數(shù)同一個(gè)函數(shù)名實(shí)現(xiàn)多種功能,在C++中稱為多態(tài),可利用函數(shù)重載和默認(rèn)參數(shù)兩種方式實(shí)現(xiàn)現(xiàn)在是140頁(yè)\一共有358頁(yè)\編輯于星期一1413.4函數(shù)重載和默認(rèn)參數(shù)同一個(gè)函數(shù)名實(shí)現(xiàn)多種功能,在C++中稱為多態(tài),可利用函數(shù)重載和默認(rèn)參數(shù)兩種方式實(shí)現(xiàn)定義或聲明函數(shù)時(shí),給出參數(shù)初始化值,則函數(shù)調(diào)用時(shí)若省略參數(shù),則參數(shù)取該初始化值。稱為默認(rèn)參數(shù)。現(xiàn)在是141頁(yè)\一共有358頁(yè)\編輯于星期一1423.4函數(shù)重載和默認(rèn)參數(shù)同一個(gè)函數(shù)名實(shí)現(xiàn)多種功能,在C++中稱為多態(tài),可利用函數(shù)重載和默認(rèn)參數(shù)兩種方式實(shí)現(xiàn)注意:函數(shù)重載和默認(rèn)參數(shù)可同時(shí)使用。若已定義默認(rèn)參數(shù)函數(shù),則不能重載參數(shù)類(lèi)型相同,參數(shù)個(gè)數(shù)少于默認(rèn)參數(shù)個(gè)數(shù)的函數(shù)。現(xiàn)在是142頁(yè)\一共有358頁(yè)\編輯于星期一1433.4函數(shù)重載和默認(rèn)參數(shù)同一個(gè)函數(shù)名實(shí)現(xiàn)多種功能,在C++中稱為多態(tài),可利用函數(shù)重載和默認(rèn)參數(shù)兩種方式實(shí)現(xiàn)注意:函數(shù)重載和默認(rèn)參數(shù)可同時(shí)使用。若已定義默認(rèn)參數(shù)函數(shù),則不能重載參數(shù)類(lèi)型相同,參數(shù)個(gè)數(shù)少于默認(rèn)參數(shù)個(gè)數(shù)的函數(shù)。參數(shù)類(lèi)型不同時(shí),可以重載。現(xiàn)在是143頁(yè)\一共有358頁(yè)\編輯于星期一1443.5函數(shù)模板有些函數(shù)重載時(shí)參數(shù)個(gè)數(shù)相同,只是類(lèi)型不同,此時(shí)重載函數(shù)比較繁瑣,可利用函數(shù)模板實(shí)現(xiàn)。現(xiàn)在是144頁(yè)\一共有358頁(yè)\編輯于星期一1453.5函數(shù)模板有些函數(shù)重載時(shí)參數(shù)個(gè)數(shù)相同,只是類(lèi)型不同,此時(shí)重載函數(shù)比較繁瑣,可利用函數(shù)模板實(shí)現(xiàn)?,F(xiàn)在是145頁(yè)\一共有358頁(yè)\編輯于星期一1463.5函數(shù)模板有些函數(shù)重載時(shí)參數(shù)個(gè)數(shù)相同,只是類(lèi)型不同,此時(shí)重載函數(shù)比較繁瑣,可利用函數(shù)模板實(shí)現(xiàn)。現(xiàn)在是146頁(yè)\一共有358頁(yè)\編輯于星期一1473.5函數(shù)模板函數(shù)模板定義格式:定義函數(shù)模板后,函數(shù)調(diào)用時(shí)根據(jù)函數(shù)參數(shù)來(lái)類(lèi)型來(lái)確定調(diào)用哪個(gè)版本的函數(shù)。函數(shù)執(zhí)行時(shí)確定參數(shù)類(lèi)型的函數(shù)稱為模板函數(shù)?,F(xiàn)在是147頁(yè)\一共有358頁(yè)\編輯于星期一1483.5函數(shù)模板此種形式調(diào)用中<int>稱為函數(shù)模板的參數(shù)一般可省略。Typename可替代class現(xiàn)在是148頁(yè)\一共有358頁(yè)\編輯于星期一1493.5函數(shù)模板若某函數(shù)參數(shù)類(lèi)型不一致時(shí),也可定義函數(shù)模板?,F(xiàn)在是149頁(yè)\一共有358頁(yè)\編輯于星期一150第四章類(lèi)和對(duì)象4.1類(lèi)及其實(shí)例化4.1.1類(lèi)的定義現(xiàn)在是150頁(yè)\一共有358頁(yè)\編輯于星期一151現(xiàn)在是151頁(yè)\一共有358頁(yè)\編輯于星期一152::稱為域限定符,表示函數(shù)是類(lèi)的成員函數(shù)。此時(shí)函數(shù)若要定義為內(nèi)聯(lián),則加inline關(guān)鍵字,類(lèi)內(nèi)定義的函數(shù)默認(rèn)為內(nèi)聯(lián)函數(shù)?,F(xiàn)在是152頁(yè)\一共有358頁(yè)\編輯于星期一153注意:類(lèi)定義時(shí),數(shù)據(jù)成員的賦值必須寫(xiě)在某個(gè)函數(shù)的內(nèi)部。一般使用類(lèi)似set的函數(shù)進(jìn)行賦值。S1.set(1001,"張三",22,99.5)類(lèi)student的set函數(shù)應(yīng)該怎么定義????現(xiàn)在是153頁(yè)\一共有358頁(yè)\編輯于星期一1544.1類(lèi)及其實(shí)例化4.1.2使用類(lèi)的對(duì)象類(lèi)的對(duì)象的使用類(lèi)似變量的使用。聲明/定義對(duì)象,直接利用對(duì)象名使用通過(guò)對(duì)對(duì)象的引用使用對(duì)象通過(guò)指向?qū)ο蟮闹羔樖褂脤?duì)象現(xiàn)在是154頁(yè)\一共有358頁(yè)\編輯于星期一1554.1.2使用類(lèi)的對(duì)象類(lèi)的對(duì)象的使用類(lèi)似變量的使用。在main函數(shù)中是否可按如下方式使用?現(xiàn)在是155頁(yè)\一共有358頁(yè)\編輯于星期一1564.1.2使用類(lèi)的對(duì)象數(shù)據(jù)成員使用規(guī)律:1,類(lèi)的成員函數(shù)可以直接使用類(lèi)的數(shù)據(jù)成員2,類(lèi)外的函數(shù)不能使用類(lèi)的私有成員3,類(lèi)外的函數(shù)可以訪問(wèn)類(lèi)的公有成員函數(shù)4,對(duì)象間的區(qū)別在于其屬性值不同現(xiàn)在是156頁(yè)\一共有358頁(yè)\編輯于星期一1574.1.3數(shù)據(jù)封裝對(duì)象間利用公有成員函數(shù)進(jìn)行通信。公用成員函數(shù)是對(duì)象的接口。現(xiàn)在是157頁(yè)\一共有358頁(yè)\編輯于星期一1584.2構(gòu)造函數(shù)4.2.1默認(rèn)構(gòu)造函數(shù)若類(lèi)的定義中未定義構(gòu)造函數(shù),則C++編譯器會(huì)自動(dòng)產(chǎn)生一個(gè)不帶參數(shù)的默認(rèn)構(gòu)造函數(shù),類(lèi)似于:point(){},此時(shí)不對(duì)對(duì)象進(jìn)行初始化。若類(lèi)中定義了構(gòu)造函數(shù),則不再產(chǎn)生默認(rèn)構(gòu)造函數(shù)?,F(xiàn)在是158頁(yè)\一共有358頁(yè)\編輯于星期一1594.2.2定義構(gòu)造函數(shù) 構(gòu)造函數(shù)無(wú)返回值,這樣可以減少編譯器的工作,提高效率。構(gòu)造函數(shù)與類(lèi)同名。構(gòu)造函數(shù)可以重載。構(gòu)造函數(shù)系統(tǒng)自動(dòng)調(diào)用。

現(xiàn)在是159頁(yè)\一共有358頁(yè)\編輯于星期一1604.2.2定義構(gòu)造函數(shù)初始化列表初始化列表現(xiàn)在是160頁(yè)\一共有358頁(yè)\編輯于星期一1614.2.3構(gòu)造函數(shù)和運(yùn)算符newNew和構(gòu)造函數(shù)一同起作用,即new首先給對(duì)象分配內(nèi)存,然后自動(dòng)調(diào)用構(gòu)造函數(shù)來(lái)初始化這塊內(nèi)存。

注意:new建立的動(dòng)態(tài)對(duì)象只能用delete刪除,一邊釋放空間?,F(xiàn)在是161頁(yè)\一共有358頁(yè)\編輯于星期一1624.2.4構(gòu)造函數(shù)的默認(rèn)參數(shù)這是錯(cuò)誤的,因?yàn)镻oint()比有默認(rèn)參數(shù)的函數(shù)少?,F(xiàn)在是162頁(yè)\一共有358頁(yè)\編輯于星期一1634.2.5復(fù)制構(gòu)造函數(shù)

<類(lèi)名>::<復(fù)制初始化構(gòu)造函數(shù)>(const

<類(lèi)名>&<引用名>);

Point(Point&p)比有默認(rèn)參數(shù)的函數(shù)少,為什么它是對(duì)的?,F(xiàn)在是163頁(yè)\一共有358頁(yè)\編輯于星期一1644.3析構(gòu)函數(shù)析構(gòu)函數(shù)的調(diào)用由編譯器自動(dòng)調(diào)用析構(gòu)函數(shù)名在類(lèi)名前加~

析構(gòu)函數(shù)無(wú)返回值析構(gòu)函數(shù)無(wú)參數(shù),可以顯示說(shuō)明為void

析構(gòu)函數(shù)不可以重載析構(gòu)函數(shù)在對(duì)象生命期結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用?,F(xiàn)在是164頁(yè)\一共有358頁(yè)\編輯于星期一1654.3.1定義析構(gòu)函數(shù)

類(lèi)的對(duì)象數(shù)組的每個(gè)元素調(diào)用一次構(gòu)造函數(shù),調(diào)用一次析構(gòu)函數(shù)。全局對(duì)象數(shù)組的析構(gòu)函數(shù)在程序結(jié)束之前被調(diào)用。

現(xiàn)在是165頁(yè)\一共有358頁(yè)\編輯于星期一1664.3.2析構(gòu)函數(shù)和運(yùn)算符deletedelete后自動(dòng)調(diào)用析構(gòu)函數(shù)。與new相反。

p81[例4.8]4.3.3默認(rèn)析構(gòu)函數(shù)編譯器為沒(méi)有析構(gòu)函數(shù)的類(lèi)自動(dòng)產(chǎn)生一個(gè)空體析構(gòu)函數(shù),與構(gòu)造函數(shù)類(lèi)似??偨Y(jié):分配幾次內(nèi)存調(diào)用幾次構(gòu)造函數(shù),反之調(diào)用析構(gòu)函數(shù)現(xiàn)在是166頁(yè)\一共有358頁(yè)\編輯于星期一1674.4調(diào)用復(fù)制構(gòu)造函數(shù)的綜合實(shí)例

p82【例4.9】現(xiàn)在是167頁(yè)\一共有358頁(yè)\編輯于星期一1684.5成員函數(shù)重載及默認(rèn)參數(shù)

p85【例4.10】現(xiàn)在是168頁(yè)\一共有358頁(yè)\編輯于星期一1694.6this指針

this指針是c++實(shí)現(xiàn)粉狀的一種機(jī)制,它將對(duì)象和該對(duì)象調(diào)用的成員函數(shù)連接在一起。

this指針保證了每個(gè)對(duì)象可以擁有自己的數(shù)據(jù)成員。現(xiàn)在是169頁(yè)\一共有358頁(yè)\編輯于星期一1704.7一個(gè)類(lèi)的對(duì)象作為另一個(gè)類(lèi)的成員

p87【例4.11】現(xiàn)在是170頁(yè)\一共有358頁(yè)\編輯于星期一1714.8類(lèi)和對(duì)象的性質(zhì)4.8.1對(duì)象的性質(zhì)同一類(lèi)的對(duì)象之間可以相互賦值;可以使用對(duì)象數(shù)組;可以使用指向?qū)ο蟮闹羔槪粚?duì)象可以用作函數(shù)參數(shù);對(duì)象作為函數(shù)參數(shù)時(shí),可以使用對(duì)象、對(duì)象引用和對(duì)象指針;一個(gè)對(duì)象可以用作另一個(gè)類(lèi)的成員?,F(xiàn)在是171頁(yè)\一共有358頁(yè)\編輯于星期一1724.8.1類(lèi)的性質(zhì)使用類(lèi)的權(quán)限不完全的類(lèi)聲明只用當(dāng)使用類(lèi)產(chǎn)生對(duì)象時(shí),才進(jìn)行內(nèi)存分配;類(lèi)沒(méi)有完全定義之前就引用該類(lèi)不完全聲明僅用于類(lèi)和結(jié)構(gòu)空類(lèi)類(lèi)作用域類(lèi)中默認(rèn)控制權(quán)限時(shí)private

現(xiàn)在是172頁(yè)\一共有358頁(yè)\編輯于星期一1734.9面向?qū)ο蟮臉?biāo)記圖

UML(UnifiedModelingLanguage)時(shí)1992年面向?qū)ο蠊芾斫M(OMG)制定的面向?qū)ο蠓治龊驮O(shè)計(jì)的國(guó)際標(biāo)準(zhǔn)。

UML時(shí)一種可視化建模語(yǔ)言,主要用于面向?qū)ο蠓治龊徒!,F(xiàn)在是173頁(yè)\一共有358頁(yè)\編輯于星期一1744.9.1類(lèi)和對(duì)象的UML標(biāo)記圖(識(shí)記)

Car+registrationnumber:String-data:CarData+speed:Integer+direction:Direction+drive(speed:Integer,direction:Direction)+getData():CarDataCar+registrationnumber:String-data:CarData+speed:Integer+direction:DirectionCar現(xiàn)在是174頁(yè)\一共有358頁(yè)\編輯于星期一175類(lèi)名類(lèi)名{約束}屬性[:類(lèi)型[=初始值]]操作(參數(shù)列表):返回類(lèi)型對(duì)象名:類(lèi)名屬性=值現(xiàn)在是175頁(yè)\一共有358頁(yè)\編輯于星期一1764.9.2對(duì)象的結(jié)構(gòu)與連接(識(shí)記)現(xiàn)在是176頁(yè)\一共有358頁(yè)\編輯于星期一1774.10面向?qū)ο缶幊痰奈募?guī)范4.10.1編譯指令(識(shí)記)4.10.2在頭文件中使用條件編譯(領(lǐng)會(huì))

現(xiàn)在是177頁(yè)\一共有358頁(yè)\編輯于星期一178第五章特殊函數(shù)和成員5.1對(duì)象成員的初始化類(lèi)的定義:現(xiàn)在是178頁(yè)\一共有358頁(yè)\編輯于星期一1795.1對(duì)象成員的初始化現(xiàn)在是179頁(yè)\一共有358頁(yè)\編輯于星期一1805.1對(duì)象成員的初始化現(xiàn)在是180頁(yè)\一共有358頁(yè)\編輯于星期一1815.1對(duì)象成員的初始化示例【5.1】double變成了其他類(lèi)現(xiàn)在是181頁(yè)\一共有358頁(yè)\編輯于星期一1825.2靜態(tài)成員成員定義時(shí)使用了static關(guān)鍵字1,靜態(tài)成員變量的初始化只能在類(lèi)外進(jìn)行。2,類(lèi)中的任何成員函數(shù)都可訪問(wèn)靜態(tài)成員變量3,訪問(wèn)靜態(tài)成員時(shí),一般加上類(lèi)名限定。4,靜態(tài)成員變量是類(lèi)的成員,不是對(duì)象的成員.5,對(duì)象未建立之前靜態(tài)成員已經(jīng)存在。6,靜態(tài)成員沒(méi)有this指針,除非使用引用方式否則不能存取類(lèi)的成員?,F(xiàn)在是182頁(yè)\一共有358頁(yè)\編輯于星期一1835.2靜態(tài)成員---靜態(tài)對(duì)象現(xiàn)在是183頁(yè)\一共有358頁(yè)\編輯于星期一1845.3友元函數(shù)可以實(shí)現(xiàn)兩個(gè)類(lèi)之間無(wú)限制的存取另一個(gè)類(lèi)的成員。友元函數(shù)可以訪問(wèn)私有成員,公有成員和保護(hù)成員。友元函數(shù)可以是一個(gè)類(lèi)或函數(shù)。友元需通過(guò)對(duì)象來(lái)使用類(lèi)的成員。友元的三種形式:1,普通函數(shù)作一個(gè)類(lèi)的友元2,a類(lèi)的成員函數(shù)作b類(lèi)的友元3,a類(lèi)作為b類(lèi)的友元現(xiàn)在是184頁(yè)\一共有358頁(yè)\編輯于星期一1855.3友元函數(shù)1,普通函數(shù)作一個(gè)類(lèi)的友元例5.4現(xiàn)在是185頁(yè)\一共有358頁(yè)\編輯于星期一1865.3友元函數(shù)2,a類(lèi)的成員函數(shù)作b類(lèi)的友元現(xiàn)在是186頁(yè)\一共有358頁(yè)\編輯于星期一1875.3友元函數(shù)2,a類(lèi)的成員函數(shù)作b類(lèi)的友元現(xiàn)在是187頁(yè)\一共有358頁(yè)\編輯于星期一1885.3友元函數(shù)2,a類(lèi)的成員函數(shù)作b類(lèi)的友元現(xiàn)在是188頁(yè)\一共有358頁(yè)\編輯于星期一1895.3友元函數(shù)3,a類(lèi)作b類(lèi)的友元現(xiàn)在是189頁(yè)\一共有358頁(yè)\編輯于星期一190總結(jié):友元函數(shù)可以實(shí)現(xiàn)兩個(gè)類(lèi)之間無(wú)限制的存取另一個(gè)類(lèi)的成員。友元函數(shù)可以訪問(wèn)私有成員,公有成員和保護(hù)成員。友元函數(shù)可以是一個(gè)類(lèi)或函數(shù)。友元需通過(guò)對(duì)象來(lái)使用類(lèi)的成員。友元的三種形式:1,普通函數(shù)作一個(gè)類(lèi)的友元2,a類(lèi)的成員函數(shù)作b類(lèi)的友元3,a類(lèi)作為b類(lèi)的友元現(xiàn)在是190頁(yè)\一共有358頁(yè)\編輯于星期一1915.4const對(duì)象const可限定變量、指針、對(duì)象、函數(shù)、數(shù)據(jù)成員、成員函數(shù)。表示不可改變。1,const成員2,const對(duì)象3,const函數(shù)1,const成員區(qū)別于const變量const變量定義時(shí)需要初始化。const成員在構(gòu)造函數(shù)中初始化(初始化列表形式)現(xiàn)在是191頁(yè)\一共有358頁(yè)\編輯于星期一1925.4const對(duì)象1,const成員區(qū)別于const變量現(xiàn)在是192頁(yè)\一共有358頁(yè)\編輯于星期一1935.4const對(duì)象1,const成員區(qū)別于const變量現(xiàn)在是193頁(yè)\一共有358頁(yè)\編輯于星期一1945.4const對(duì)象2,const引用作參數(shù)現(xiàn)在是194頁(yè)\一共有358頁(yè)\編輯于星期一1955.4const對(duì)象2,const對(duì)象和const函數(shù)const對(duì)象只能調(diào)用const成員函數(shù)const函數(shù)中不允許使用改變變量或成員值的語(yǔ)句現(xiàn)在是195頁(yè)\一共有358頁(yè)\編輯于星期一196復(fù)習(xí)上節(jié)對(duì)象初始化:構(gòu)造函數(shù)兩種定義形式。

const限定的數(shù)據(jù)成員引用數(shù)據(jù)成員靜態(tài)成員:靜態(tài)數(shù)據(jù)成員,靜態(tài)成員函數(shù)友元:普通函數(shù)做友元類(lèi)的成員函數(shù)做友元類(lèi)做友元const成員:const數(shù)據(jù)成員(const引用)

const成員函數(shù)

const對(duì)象現(xiàn)在是196頁(yè)\一共有358頁(yè)\編輯于星期一197復(fù)習(xí)上節(jié)類(lèi)的對(duì)象數(shù)組:對(duì)象數(shù)組中的每個(gè)元素都是一個(gè)對(duì)象。對(duì)象數(shù)組元素的使用同普通對(duì)象使用。對(duì)象的指針:指向?qū)ο蟮闹羔樖褂脤?duì)象的成員函數(shù)和數(shù)據(jù)成員。對(duì)象指針數(shù)組:數(shù)組中每個(gè)元素都是一個(gè)指向?qū)ο蟮闹羔?。指向函?shù)的指針:函數(shù)有地址,指針能存地址,指針可以指向函數(shù)?,F(xiàn)在是197頁(yè)\一共有358頁(yè)\編輯于星期一1985.5數(shù)組和類(lèi)類(lèi)可定義對(duì)象數(shù)組。inta[5];inta[5]={1,2,3,4,5};pointp[3];pointp[3]={point(1,2),point(3,4),point(5,6)}定義數(shù)組時(shí)未初始化調(diào)用point()形式構(gòu)造函數(shù)定義數(shù)組并初始化調(diào)用point(a,b)形式構(gòu)造函數(shù)使用數(shù)組中的元素時(shí)利用:point[i]形式Point[i]的使用同普通對(duì)象使用方式相同現(xiàn)在是198頁(yè)\一共有358頁(yè)\編輯于星期一1995.5數(shù)組和類(lèi)類(lèi)可定義對(duì)象數(shù)組,可定義指向?qū)ο蟮闹羔様?shù)組名是數(shù)組在內(nèi)存中的首地址指針可以存放地址可用指針指向數(shù)組通過(guò)指針可以使用對(duì)象成員p->show()通過(guò)指針可以使用對(duì)象數(shù)組元素的成員P=a;a[0].show();p->show();現(xiàn)在是199頁(yè)\一共有358頁(yè)\編輯于星期一2005.5數(shù)組和類(lèi)定義對(duì)象的指針數(shù)組int*p;表示定義一個(gè)指針變量intp[5];表示定義一個(gè)數(shù)組。int*p[5]表示定義一個(gè)數(shù)組中有5個(gè)元素,每個(gè)元素是一個(gè)指針。此類(lèi)數(shù)組稱為指針數(shù)組。point*p;p=newpoint;p=newpoint(1,2);現(xiàn)在是200頁(yè)\一共有358頁(yè)\編輯于星期一2015.5數(shù)組和類(lèi)定義對(duì)象的指針數(shù)組point*p[3];p[0]=newpoint(1,2);p[1]=newpoint(3,4);p[2]=newpoint(5,6);通過(guò)p[0]使用p[0]指向的對(duì)象。p[0]->show();可通過(guò)循環(huán)使用p[i]指向的對(duì)象?,F(xiàn)在是201頁(yè)\一共有358頁(yè)\編輯于星期一2025.5數(shù)組和類(lèi)定義指向?qū)ο蟮闹羔様?shù)組,并初始化。point*p[3]={newpoint(1,2),newpoint(3,4),newpoint(5,6)};現(xiàn)在是202頁(yè)\一共有358頁(yè)\編輯于星期一2035.6指向成員函數(shù)的指針函數(shù)被調(diào)用時(shí)需要調(diào)入內(nèi)存函數(shù)有地址:存放函數(shù)的內(nèi)存單元的首地址指針可以存放地址存放函數(shù)地址的指針?lè)Q為指向函數(shù)的指針定義形式:類(lèi)型(*指針名)(參數(shù)類(lèi)型);現(xiàn)在是203頁(yè)\一共有358頁(yè)\編輯于星期一2045.6指向成員函數(shù)的指針intmax(inta,intb){returna>b?a:b;}voidmain(){ int(*p)(int,int); p=max; (*p)(1,2);}現(xiàn)在是204頁(yè)\一共有358頁(yè)\編輯于星期一2055.6指向成員函數(shù)的指針若max函數(shù)是某類(lèi)A的成員函數(shù)則:intA::max(inta,intb){returna>b?a:b;}voidmain(){ int(A::*p)(int,int);Aa; p=A::max; a.(*p)(1,2);}現(xiàn)在是205頁(yè)\一共有358頁(yè)\編輯于星期一2065.7求解一元二次方程利用C++實(shí)現(xiàn)設(shè)計(jì)類(lèi),定義類(lèi),定義main函數(shù)定義對(duì)象,利用對(duì)象調(diào)用成員函數(shù)執(zhí)行現(xiàn)在是206頁(yè)\一共有358頁(yè)\編輯于星期一207設(shè)計(jì)類(lèi)類(lèi)的對(duì)象中應(yīng)能存放相關(guān)數(shù)據(jù):具有數(shù)據(jù)成員a,b,c一元二次方程的三個(gè)系數(shù)x1,x2存放求得的方程解delta存放b*b-4*a*c類(lèi)的對(duì)象應(yīng)能完成計(jì)算功能:具有成員函數(shù)1,將數(shù)據(jù)存入數(shù)據(jù)成員的函數(shù)2,顯示結(jié)果的函數(shù)3,計(jì)算x1,x2的函數(shù)現(xiàn)在是207頁(yè)\一共有358頁(yè)\編輯于星期一208定義類(lèi)現(xiàn)在是208頁(yè)\一共有358頁(yè)\編輯于星期一209設(shè)計(jì)類(lèi)定義類(lèi)的成員函數(shù)現(xiàn)在是209頁(yè)\一共有358頁(yè)\編輯于星期一210main函數(shù)現(xiàn)在是210頁(yè)\一共有358頁(yè)\編輯于星期一211main函數(shù)現(xiàn)在是211頁(yè)\一共有358頁(yè)\編輯于星期一212main函數(shù)現(xiàn)在是212頁(yè)\一共有358頁(yè)\編輯于星期一213main函數(shù)現(xiàn)在是213頁(yè)\一共有358頁(yè)\編輯于星期一214main函數(shù)現(xiàn)在是214頁(yè)\一共有358頁(yè)\編輯于星期一215第五章復(fù)習(xí)構(gòu)造函數(shù)定義:classA{intapublic:

A(intx):a(x){}A(intx){a=x;}}const限定的數(shù)據(jù)成員初始化必須用?形式?還有什么數(shù)據(jù)成員必須用此種形式初始化??const限定的數(shù)據(jù)成員和引用數(shù)據(jù)成員初始化必須使用初始化列表形式?,F(xiàn)在是215頁(yè)\一共有358頁(yè)\編輯于星期一216靜態(tài)成員不依賴于對(duì)象而存在。靜態(tài)數(shù)據(jù)成員:定義時(shí)加static靜態(tài)成員必須初始化使用語(yǔ)句:intA::b=0;靜態(tài)對(duì)象:static對(duì)象一旦定義存在于內(nèi)存中,直到程序結(jié)束才釋放內(nèi)存?,F(xiàn)在是216頁(yè)\一共有358頁(yè)\編輯于星期一217靜態(tài)成員不依賴于對(duì)象而存在。靜態(tài)成員使用注意:非靜態(tài)對(duì)象靜態(tài)成員可否使用?靜態(tài)對(duì)象靜態(tài)成員可否使用?靜態(tài)對(duì)象非靜態(tài)成員可否使用?靜態(tài)成員函數(shù)非靜態(tài)成員可否使用?非靜態(tài)成員函數(shù)靜態(tài)成員可否使用?現(xiàn)在是217頁(yè)\一共有358頁(yè)\編輯于星期一218靜態(tài)成員不依賴于對(duì)象而存在。其他注意事項(xiàng):p1081-7靜態(tài)函數(shù)沒(méi)有this指針不能聲明為virtual函數(shù)現(xiàn)在是218頁(yè)\一共有358頁(yè)\編輯于星期一219友元普通函數(shù)作友元類(lèi)的成員函數(shù)作友元類(lèi)作友元類(lèi)A的友元(函數(shù),成員函數(shù),類(lèi))可以訪問(wèn)類(lèi)A中的所有成員,但必須通過(guò)對(duì)象或引用來(lái)訪問(wèn)。友元應(yīng)在類(lèi)A中利用friend聲明現(xiàn)在是219頁(yè)\一共有358頁(yè)\編輯于星期一220const對(duì)象const數(shù)據(jù)成員const成員函數(shù)const指針const變量const引用加const限定后不可改變,任何企圖改變都導(dǎo)致錯(cuò)誤,并應(yīng)注意他們的初始化??!現(xiàn)在是220頁(yè)\一共有358頁(yè)\編輯于星期一221使用規(guī)則:const對(duì)象不能調(diào)用任何非const成員函數(shù)const成員函數(shù)只能調(diào)用const成員函數(shù)非const對(duì)象可以調(diào)用const成員函數(shù)非const對(duì)象可以使用const數(shù)據(jù)成員const成員函數(shù)中不能使用任何試圖改變變量值的語(yǔ)句?,F(xiàn)在是221頁(yè)\一共有358頁(yè)\編輯于星期一222數(shù)組和類(lèi)類(lèi)可以定義對(duì)象類(lèi)可以定義對(duì)象數(shù)組對(duì)象數(shù)組中的每個(gè)元素都是對(duì)象,其使用方式和對(duì)象的使用方式相同。對(duì)象數(shù)組名表示數(shù)組的首地址可以定義指向?qū)ο蟮闹羔榩使其指向某個(gè)對(duì)象可以用指針p指向數(shù)組中的元素現(xiàn)在是222頁(yè)\一共有358頁(yè)\編輯于星期一223對(duì)象的指針數(shù)組使用函數(shù)指針定義形式:int(*p)(int,int);int(A::*P)(int,int);intmax(inta,intb){}intA::max(inta,intb){}現(xiàn)在是223頁(yè)\一共有358頁(yè)\編輯于星期一224習(xí)題五-1現(xiàn)在是224頁(yè)\一共有358頁(yè)\編輯于星期一225習(xí)題五-1現(xiàn)在是225頁(yè)\一共有358頁(yè)\編輯于星期一226習(xí)題五-1現(xiàn)在是226頁(yè)\一共有358頁(yè)\編輯于星期一227習(xí)題五-1現(xiàn)在是227頁(yè)\一共有358頁(yè)\編輯于星期一228習(xí)題五-1現(xiàn)在是228頁(yè)\一共有358頁(yè)\編輯于星期一229習(xí)題五-4現(xiàn)在是229頁(yè)\一共有358頁(yè)\編輯于星期一230習(xí)題五-4現(xiàn)在是230頁(yè)\一共有358頁(yè)\編輯于星期一231第六章繼承和派生6.1繼承和派生的基本概念繼承關(guān)系是類(lèi)與類(lèi)之間的類(lèi)屬關(guān)系類(lèi):人類(lèi):學(xué)生類(lèi):教師在已有類(lèi)的基礎(chǔ)上定義新的類(lèi)稱為類(lèi)的派生,新產(chǎn)生的類(lèi)為派生類(lèi),原來(lái)的類(lèi)為基類(lèi)。(一般與特殊的關(guān)系)現(xiàn)在是231頁(yè)\一共有358頁(yè)\編輯于星期一2326.1繼承和派生的基本概念繼承關(guān)系是類(lèi)與類(lèi)之間的類(lèi)屬關(guān)系類(lèi):人類(lèi):學(xué)生類(lèi):教師從成員構(gòu)成來(lái)看,派生類(lèi)具有基類(lèi)的所有成員,基類(lèi)又叫父類(lèi),派生類(lèi)又叫子類(lèi)?,F(xiàn)在是232頁(yè)\一共有358頁(yè)\編輯于星期一2336.1繼承和派生的基本概念類(lèi)的繼承是指:派生類(lèi)繼承基類(lèi)的所有數(shù)據(jù)成員和成員函數(shù)。用于表示類(lèi)間的類(lèi)屬關(guān)系。非構(gòu)成關(guān)系。派生類(lèi)的特點(diǎn):1,增加新成員。2,重定義已有成員函數(shù)。3,改變基類(lèi)的成員的訪問(wèn)權(quán)限?,F(xiàn)在是233頁(yè)\一共有358頁(yè)\編輯于星期一2346.1繼承和派生的基本概念人學(xué)生教師姓名、年齡、性別。。。?,F(xiàn)在是234頁(yè)\一共有358頁(yè)\編輯于星期一2356.2單一繼承6.2.1一般形式class派生類(lèi)名:訪問(wèn)控制基類(lèi)名{private:成員列表;

public:成員列表;

protected:成員列表;};現(xiàn)在是

溫馨提示

  • 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)論