關于類和對象的進一步討論講稿_第1頁
關于類和對象的進一步討論講稿_第2頁
關于類和對象的進一步討論講稿_第3頁
關于類和對象的進一步討論講稿_第4頁
關于類和對象的進一步討論講稿_第5頁
已閱讀5頁,還剩86頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

回顧第2章類和對象對象、對象的兩個要素類面向對象程序設計的三大特性類的定義對象的定義與使用1第3章關于類和對象的進一步討論本章內(nèi)容3.1構造函數(shù)3.2析構函數(shù)3.3調(diào)用構造函數(shù)和析構函數(shù)的順序

3.4對象數(shù)組3.5對象指針3.6共用數(shù)據(jù)的保護3.7對象的動態(tài)建立和釋放3本章內(nèi)容3.8對象的賦值和復制3.9靜態(tài)成員3.10友員

3.11函數(shù)模板與類模板4目標理解構造函數(shù)與析構函數(shù)的作用;熟練掌握構造函數(shù)和析構函數(shù)的定義和使用。掌握對象數(shù)組、對象指針的使用,以及對象的動態(tài)建立與釋放;了解對象的賦值與復制理解靜態(tài)成員和友元的作用熟練掌握靜態(tài)成員和友元的定義與使用了解函數(shù)模板與類模板的定義與使用5本章內(nèi)容3.1構造函數(shù)

3.2析構函數(shù)3.3調(diào)用構造函數(shù)和析構函數(shù)的順序3.4對象數(shù)組3.5對象指針3.6共用數(shù)據(jù)的保護3.7對象的動態(tài)建立和釋放63.1構造函數(shù)

3.1.1對象的初始化定義對象時最好能給對象的數(shù)據(jù)成員進行初始化,但不能在類的聲明中進行。例如:classTime{private:

inth=0;//錯誤??!

};類是個抽象的自定義數(shù)據(jù)類型,不占存儲空間,無法存儲數(shù)據(jù)73.1構造函數(shù)

3.1.2構造函數(shù)的作用構造函數(shù)是類中一種特殊的成員函數(shù)。構造函數(shù)的作用是在系統(tǒng)創(chuàng)建對象時,給對象的數(shù)據(jù)成員進行初始化。格式:類名([參數(shù)表]){函數(shù)體;}注意類外定義的格式83.1構造函數(shù)

3.1.2構造函數(shù)的作用構造函數(shù)的特點1、構造函數(shù)名字必須與類名相同,不具有任何類型,也不返回任何值。2、構造函數(shù)的權限必須是public。3、構造函數(shù)不需要也不能被用戶調(diào)用,而是在建立對象時由系統(tǒng)自動調(diào)用執(zhí)行。4、每個類都必須有一個構造函數(shù),用戶沒有定義時,系統(tǒng)會自動生成一個空的構造函數(shù)。93.1構造函數(shù)

3.1.3無參和帶參的構造函數(shù)(一)無參數(shù)的構造函數(shù)(默認構造函數(shù))格式:類名(){數(shù)據(jù)成員=初始值;}對象的定義格式:類名對象名;103.1構構造函數(shù)無無參和帶帶參的構造函函數(shù)(二)帶參數(shù)數(shù)的構造函數(shù)數(shù)類名(類型1參數(shù)1,,類型2參參數(shù)2,………){數(shù)據(jù)成員1==參數(shù)1;數(shù)據(jù)成員2==參數(shù)2;………}對象的定義格格式為:類名對象象名(實參1,實參2,,……);113.1構構造函數(shù)用用參數(shù)初初始化表對數(shù)數(shù)據(jù)成員初始始化參數(shù)初始化表表——對數(shù)據(jù)成成員的初始化化放在函數(shù)首首部實現(xiàn)。格式:類名(類型1參數(shù)1,類型2參數(shù)2,……):數(shù)據(jù)成員1((參數(shù)1),,數(shù)據(jù)成員2(參數(shù)2)),………{}對象的定義格格式為:類名對象象名(實參1,實參2,,……);123.1構構造函數(shù)構構造函數(shù)數(shù)的重載定義在一個類中可可以定義多個個構造函數(shù),,其參數(shù)的個個數(shù)、順序或或類型不相同同。調(diào)用建立對象時,,系統(tǒng)將根據(jù)據(jù)對象的實參參個數(shù)、類型型去匹配對應應的構造函數(shù)數(shù)。133.1構構造函數(shù)帶帶默認參參數(shù)的構造函函數(shù)格式:類名(類型1參數(shù)1=默認值1,類型2參參數(shù)2=默認值2,……){數(shù)據(jù)成員1==參數(shù)1;數(shù)據(jù)成員2==參數(shù)2;………}14構造函數(shù)補充充說明在調(diào)用構造函函數(shù)時,不必必給出實參的的構造函數(shù),,稱之為默認構造函數(shù)數(shù)全部參數(shù)都指指定了默認值值的構造函數(shù)數(shù)也屬于默認認構造函數(shù)一個類只能有一個默認構造函數(shù)數(shù)定義了全部是是默認參數(shù)的的構造函數(shù)后后,不能在定定義重載構造造函數(shù)如果定義了任任何其他的構構造函數(shù),編編譯器就不會會為你自動生生成缺省的構構造函數(shù)153.2析析構函數(shù)(一)析構函函數(shù)的作用析構函數(shù)的作作用是在系統(tǒng)統(tǒng)撤銷對象占占用的內(nèi)存之之前,完成一一些清理工作作。格式~類名(){函數(shù)體;}163.2析析構函數(shù)(二)析構函函數(shù)的特點1、析構函數(shù)數(shù)名是在類名名前加“~””,無返回類類型,無參數(shù)數(shù)。2、析構函數(shù)數(shù)無參數(shù),故故不能被重載載。3、當系統(tǒng)撤撤銷對象之前前將調(diào)用析構構函數(shù)。P78注意:析構函數(shù)也可被用戶當普通通函數(shù)進行調(diào)調(diào)用,但不影影響系統(tǒng)在撤撤銷對象時的的自動調(diào)用。。17classStudent{private:char*pName;public:Student(){pName=newchar[20];}~Student(){delete[]pName;}};18類和對象類數(shù)據(jù)成員成員函數(shù)對象數(shù)據(jù)成員數(shù)據(jù)成員對象19小結構造函數(shù)構造函數(shù)的作作用構造函數(shù)的特特點無參和帶參的的構造函數(shù)用參數(shù)初始化化表對數(shù)據(jù)成成員初始化構造函數(shù)的重重載帶默認參數(shù)的的構造函數(shù)析構函數(shù)析構函數(shù)的作作用析構函數(shù)的特特點20本章內(nèi)容3.1構構造函數(shù)3.2析析構函數(shù)3.3構構造函數(shù)和析析構函數(shù)的調(diào)調(diào)用順序3.4對對象數(shù)組3.5對對象指針3.6共共用數(shù)據(jù)的的保護3.7對對象的動態(tài)態(tài)建立和釋放放213.4對對象數(shù)組對象數(shù)組指由同類的多多個對象構成的集合。。(一)對象數(shù)數(shù)組定義格式式:類名對象數(shù)數(shù)組名[常量量表達式];;類名對象數(shù)數(shù)組名[常量量表達式1][常量表達達式2];;223.4對對象數(shù)組對象數(shù)組(二)對象數(shù)數(shù)組的初始化化格式類名對象數(shù)數(shù)組名[常量量表達式]=={類名(實參列表1),類名(實參列表2),……};233.4對對象數(shù)組對象數(shù)組(三)數(shù)組元元素的存取格格式:對象數(shù)組名[下標].數(shù)數(shù)據(jù)成員對象數(shù)組名[下標].成成員函數(shù)24本章內(nèi)容3.1構構造函數(shù)3.2析析構函數(shù)3.3對對象的賦值和和復制3.4對對象數(shù)組3.5對對象指針3.6共共用數(shù)據(jù)的的保護3.7對對象的動態(tài)態(tài)建立和釋放放253.5對對象指針指指向對象象的指針指指向對象象成員的指針針3.5.3this指針263.5對對象指針指指向對象象的指針定義格式:類名*對象指針針名訪問格式:對象指針->數(shù)據(jù)成員對象指針->成員函數(shù)((實參列表))273.5對對象指針指指向對象象的指針例如:Timet1(10,30,30);t1.ShowTime();Time*p;p=&t1;p->SetTime(8,0,0);t1.ShowTime();283.5對對象指針指指向對象象成員的指針針(一)指向對對象數(shù)據(jù)成員員的指針定義格式:類型*指針變量量名訪問格式:指針變量名==&對象.成成員名;注意:所指向的數(shù)據(jù)據(jù)成員必須為為public。293.5對對象指針指指向對象象成員的指針針(一)指向對對象數(shù)據(jù)成員員的指針定義格式:類型*指針變量量名訪問格式:指針變量名==&對象.成成員名;例如:Timet1(10,30,30);int*p;p=&t1.h;//若h為public成員303.5對對象指針指指向對象象成員的指針針(二)指向對對象成員函數(shù)數(shù)的指針1、指向普通通函數(shù)的指針針函數(shù)在編譯時時被分配到一一個入口地址址,稱為函數(shù)數(shù)的指針。函數(shù)名代表該該函數(shù)的入口口地址。313.5對對象指針指指向對象象成員的指針針(二)指向對對象成員函數(shù)數(shù)的指針1、指向普通通函數(shù)的指針針定義形式:返回類型(*指針變量量名)(形參列表))賦值形式:指針變量名==函數(shù)名323.5對對象指針指指向對象象成員的指針針(二)指向對對象成員函數(shù)數(shù)的指針1、指向普通通函數(shù)的指針針函數(shù)調(diào)用形式式:函數(shù)名(實參參)(*指針變量量名)(實參列表))舉例:sum函數(shù)333.5對對象指針指指向對象象成員的指針針(二)指向對對象成員函數(shù)數(shù)的指針2、指向對象象成員函數(shù)的的指針舉例:時間類類Time34#include<iostream>usingnamespacestd;classTime{inth,m,s;public:Time(inthh=0,intmm=0,intss=0){h=hh;m=mm;s=ss;}voidShowTime(){cout<<h<<":"<<m<<":"<<s<<endl;}};353.5對對象指針指指向對象象成員的指針針(二)指向對對象成員函數(shù)數(shù)的指針2、指向對象象成員函數(shù)的的指針定義形式:返回類型((類名::*指針變量量名)(形參參列表)賦值形式:指針變量名==&類名::成員函數(shù)名注意:所指向向的成員函數(shù)數(shù)必須為public。。363.5對對象指針指指向對象象成員的指針針(二)指向對對象成員函數(shù)數(shù)的指針2、指向對象象成員函數(shù)的的指針函數(shù)調(diào)用形式式:對象.成員員函數(shù)名(實實參)(對象.*指針變量名)(實參列表))注意:定義時用類名,使用時用對象名373.5對對象指針3.5.3this指針每一個成員函函數(shù)都有一個個隱含的特殊殊指針——this指針針。This指針針的值為當前前調(diào)用的該成成員函數(shù)的對對象的首地址址。例如:38類和對象成員函數(shù)對象數(shù)據(jù)成員數(shù)據(jù)成員對象39classTime{inth,m,s;public:voidSetTime(inth=0,intm=0,ints=0){this->h=h;this->m=m;this->s=s;}voidShowTime(){cout<<h<<":"<<m<<":"<<s<<endl;}};40本章內(nèi)容3.1構構造函數(shù)3.2析析構函數(shù)3.3對對象的賦值和和復制3.4對對象數(shù)組3.5對對象指針3.6共共用用數(shù)數(shù)據(jù)據(jù)的的保保護護3.7對對象象的的動動態(tài)態(tài)建建立立和和釋釋放放413.6共共用用數(shù)數(shù)據(jù)據(jù)的的保保護護常常對對象象常常對對象象成成員員指指向向對對象象的的常常指指針針指指向向常常對對象象的的指指針針變變量量對對象象的的常常引引用用42本章章內(nèi)內(nèi)容容3.1構構造造函函數(shù)數(shù)3.2析析構構函函數(shù)數(shù)3.3析析構構函函數(shù)數(shù)和和構構造造函函數(shù)數(shù)的的調(diào)調(diào)用用順順序序3.4對對象象數(shù)數(shù)組組3.5對對象象指指針針3.6共共用用數(shù)數(shù)據(jù)據(jù)的的保保護護3.7對對象象的的動動態(tài)態(tài)建建立立和和釋釋放放433.7對對象象的的動動態(tài)態(tài)建建立立與與釋釋放放3.7對對象象的的動動態(tài)態(tài)建建立立與與釋釋放放動態(tài)態(tài)創(chuàng)創(chuàng)建建和和撤撤銷銷一一個個對對象象指針針名名==new類名名((初初值值));;delete指針針名名;;注意意1、、使使用用new創(chuàng)創(chuàng)建建對對象象時時自自動動調(diào)調(diào)用用構構造造函函數(shù)數(shù),,delete撤撤銷銷對對象象之之前前自自動動調(diào)調(diào)用用析析構構函函數(shù)數(shù);;2、、動動態(tài)態(tài)創(chuàng)創(chuàng)建建的的對對象象必必須須使使用用delete進進行行撤撤銷銷。。443.7對對象象的的動動態(tài)態(tài)建建立立與與釋釋放放3.7對對象象的的動動態(tài)態(tài)建建立立與與釋釋放放動態(tài)態(tài)創(chuàng)創(chuàng)建建和和撤撤銷銷一一維維對對象象數(shù)數(shù)組組對象象指指針針==new類名名[數(shù)數(shù)組組大大小小];;delete[]對對象象指指針針;;注意意1、、構構造造函函數(shù)數(shù)和和析析構構函函數(shù)數(shù)的的調(diào)調(diào)用用次次數(shù)數(shù)與與數(shù)數(shù)組組的的大大小小相相同同。。2、、此此時時只只能能調(diào)調(diào)用用默默認認構構造造函函數(shù)數(shù),,不不能能給給參參數(shù)數(shù)3、、注注意意構構造造函函數(shù)數(shù)和和析析構構函函數(shù)數(shù)的的調(diào)調(diào)用用順順序序。。45本章章內(nèi)內(nèi)容容3.1構構造造函函數(shù)數(shù)3.2析析構構函函數(shù)數(shù)3.3析析構構函函數(shù)數(shù)和和構構造造函函數(shù)數(shù)的的調(diào)調(diào)用用順順序序3.4對對象象數(shù)數(shù)組組3.5對對象象指指針針3.6共共用用數(shù)數(shù)據(jù)據(jù)的的保保護護3.7對對象象的的動動態(tài)態(tài)建建立立和和釋釋放放46本章章內(nèi)內(nèi)容容3.8對對象象的的賦賦值值和和復復制制3.9靜靜態(tài)態(tài)成成員員3.10友友元元3.11函函數(shù)模板板與類模模板473.8對對象象的賦值值和復制制對對象的的賦值格式對象名1=對象象名2例如:Timet1(10,30,0),t2;t2=t1;作用將對象2的數(shù)據(jù)成員員的值依次次賦值給給對象1;注意對象1和和對象2必須是是同類的的已定義對象。483.8對對象象的賦值值和復制制對對象的的復制作用———利用已有有對象復復制出新新的對象象。格式:類名新對象(已已有對象象);或類名新對象=已已有對象象;建立新對對象時自動調(diào)用復制制構造函函數(shù)。49本章內(nèi)容容3.8對對象的的賦值和和復制3.9靜靜態(tài)成成員3.10友友元3.11函函數(shù)模板板與類模模板503.9靜靜態(tài)態(tài)成員問題引入入在類的定定義中,,如何描描述類的的所有對對象所共共享的數(shù)數(shù)據(jù)?例如對于之前前定義的的表示時時間信息息的類Time,如何何統(tǒng)計Time類的對對象的個個數(shù)?513.9靜靜態(tài)態(tài)成員解決方法法方法一::定義全局局變量或或對象缺點:不不安全,,任何功功能模塊塊都可以以更改;;方法二::定義靜態(tài)態(tài)的數(shù)據(jù)據(jù)成員優(yōu)點:可可實現(xiàn)共共享,并并保證安安全性。。靜態(tài)成員員靜態(tài)數(shù)據(jù)據(jù)成員靜態(tài)成員員函數(shù)523.9靜靜態(tài)態(tài)成員靜靜態(tài)數(shù)據(jù)據(jù)成員與普通數(shù)數(shù)據(jù)成員員的區(qū)別別普通數(shù)據(jù)據(jù)成員是是屬于對象象的,即在在類的每每一個對對象中都都擁有一一個拷貝貝。靜態(tài)數(shù)據(jù)據(jù)成員是是屬于整個個類的,即每每個類只只有一個個拷貝,,該類所所有對象象都共同同擁有和和使用。。53voidfun(){staticinti=0;i++;cout<<i<<endl;}voidmain(){for(intk=0;k<3;k++)fun();fun();}//只被被賦值一一次,程程序退出出時消失失543.9靜靜態(tài)態(tài)成員靜靜態(tài)數(shù)據(jù)據(jù)成員定義方式式(一)在類內(nèi)聲聲明靜態(tài)態(tài)數(shù)據(jù)成成員static類型名成成員員名;例如:classTime{………staticintcount;};553.9靜靜態(tài)態(tài)成員靜靜態(tài)數(shù)據(jù)據(jù)成員定義方式式(一)在類內(nèi)聲聲明靜態(tài)態(tài)數(shù)據(jù)成成員static類類型型名成成員名名;注意:1、靜態(tài)態(tài)數(shù)據(jù)成成員同樣樣具有訪訪問控制制權限。。2、靜態(tài)態(tài)數(shù)據(jù)成成員具有有靜態(tài)生生存期,,即在程程序開始始時,系系統(tǒng)為其其分配存存儲空間間,當程程序結束束時撤銷銷。和對象的的生死無無關563.9靜靜態(tài)態(tài)成員靜靜態(tài)數(shù)據(jù)據(jù)成員定義方式式(二)在類外進進行初始始化類型類名::靜靜態(tài)數(shù)數(shù)據(jù)成員員名==初初始值值注意:1、必須初始化,,且必須在類外進進行初始始化。P1032、初始始化時不加static。。3、靜態(tài)態(tài)成員名名前必須說明類屬屬。573.9靜靜態(tài)成員靜靜態(tài)數(shù)據(jù)成成員訪問方式方法一類名::靜態(tài)數(shù)據(jù)成成員名方法二對象名.靜靜態(tài)數(shù)據(jù)據(jù)成員名注意:靜態(tài)數(shù)據(jù)成員員同樣具有訪問控制限制制,因此,必須須聲明為public的的,才能在類類外訪問。583.9靜靜態(tài)成員靜靜態(tài)數(shù)據(jù)成成員應用舉例定義靜態(tài)數(shù)據(jù)據(jù)成員count統(tǒng)計Time類當當前對象的個個數(shù)。59練習定義一個學生生類,包括學學號、姓名、、語文成績。。要求:統(tǒng)計N個學生生的平均成績績,并能輸出出學生總數(shù)以以及平均成績績60練習分析程序執(zhí)行行結果見Static.txt613.9靜靜態(tài)成員靜靜態(tài)成員函函數(shù)特點只能存取類的靜態(tài)態(tài)數(shù)據(jù)成員定義格式在成員函數(shù)聲聲明的前面加加上關鍵字static調(diào)用形式類名::靜態(tài)成員員函數(shù)名((實參列表表)對象.靜靜態(tài)成員函數(shù)數(shù)名(實實參列表)623.9靜靜態(tài)成員靜靜態(tài)成員函函數(shù)注意在靜態(tài)成員函函數(shù)中不能直接訪問非靜靜態(tài)成員,若若要訪問非靜靜態(tài)成員,必須通過參參數(shù)傳傳遞的的方式式得到到相應應的對對象,,再通通過對對象來來訪問問。例63練習編寫程程序實實現(xiàn)賓賓館住住宿客客人管管理。??腿祟愵怗uest客人編編號Num(按按先后后順序序自動動生成成)姓名Name住宿房房號Room房費fee客人總總數(shù)Count提供構構造函函數(shù),,顯示示信息息函數(shù)數(shù)Display,,以及及返回回客人人總數(shù)數(shù)函數(shù)數(shù)GetCount等。。創(chuàng)建建3個個客人人對象象進行行測試試。64本章內(nèi)內(nèi)容3.8對對象象的賦賦值和和復制制3.9靜靜態(tài)態(tài)成員員3.10友友元3.11函函數(shù)模模板與與類模模板653.10友友元元((員員))友元元的的作作用用該類類外外部部的的函函數(shù)數(shù)或或其其他他類類通通過過聲聲明明為為友友元元關關系系,,從從而而可可訪訪問問該該類類的的私私有有成成員員。。即B是是A的的友友元元,,則則B可可訪訪問問A的的私有有成員員。。友元元的的分分類類友元元函函數(shù)數(shù)::普普通通函函數(shù)數(shù)和和類類的的成成員員函函數(shù)數(shù);;友元元類類663.10友友元元友友元元函函數(shù)數(shù)(一一))將將普普通通函函數(shù)數(shù)聲聲明明為為友友元元函函數(shù)數(shù)普通通函函數(shù)數(shù)作作友友元元的的聲聲明明格格式式friend類類型型友友元元函函數(shù)數(shù)名名((參參數(shù)數(shù)列列表表))注意意1、、該該函函數(shù)數(shù)一一般般只只在類類中中聲聲明明為友友元元,,函函數(shù)數(shù)的的定義義在在類類外外。2、、友友元元的的聲聲明明可可在在類類中中任何何位位置置。673.10友友元元友友元元函函數(shù)數(shù)(二二))將將成成員員函函數(shù)數(shù)聲聲明明為為友友元元函函數(shù)數(shù)應用用舉舉例例定義義表表示示學學生生類類Student;;定義義教教師師類類Teacher;;在Teacher類類中中提提供供一一個個用用于于修修改改學學生生成成績績的的成成員員函函數(shù)數(shù)。。683.10友友元元友友元元函函數(shù)數(shù)(二二))將將成成員員函函數(shù)數(shù)聲聲明明為為友友元元函函數(shù)數(shù)成員員函函數(shù)數(shù)作作友友元元的的聲聲明明格格式式friend類類型型類名名::友友元元函函數(shù)數(shù)名名((參參數(shù)數(shù)))提前前引引用用聲聲明明class類類名名;;69Classteacher{Voidsets(…………){}}Voidteacher::sets(..){cin>>st.score;}Classstudent{Private:intnum;floatscore;Public:student(intn,floats){num=n;score=s;}FriendVoidteacher::sets(……);}Student[&]st70友友元元函函數(shù)數(shù)(二二))將將成成員員函函數(shù)數(shù)聲聲明明為為友友元元函函數(shù)數(shù)注意意::1、、兩兩個個類類聲聲明明的的先先后后順順序序。。包含含friend關鍵鍵字字的的那那個個類類后聲明明2、、友友元元函函數(shù)數(shù)應應先先在在類類中中聲聲明明,,其其定定義義應應放放在在兩兩個個類類的的聲聲明明后后面面。。713.10友友元元友友元元類類作用用類B是是類類A的的友友元元類類,,則則B中中所所有有的的成成員員函函數(shù)數(shù)都都是是A的的友友元元函函數(shù)數(shù),,即即所所有有B的的成成員員函函數(shù)數(shù)都都能能訪訪問問A的的私私有有數(shù)數(shù)據(jù)據(jù)成成員員。。友元元類類的的聲聲明明格格式式friend類類名名;;例如如此時時那那個個類類在在前前都都可可以以,,注注意意提提前前引引用用聲聲明明即即可可。723.10友友元元友友元元類類說明明((P111))友元元關關系系是是單向向的,,而而不不是是雙雙向向的的。。友元元關關系系不具具有有傳傳遞遞性性。73本章章內(nèi)內(nèi)容容3.8對對象象的的賦賦值值和和復復制制3.9靜靜態(tài)態(tài)成成員員3.10友友元元3.11模模板板74模模板板的的概概念念(一一))什什么么是是模模板板??一種種通通用用的的函函數(shù)數(shù)和和類類的的設設計計方方法法,,即即將將函函數(shù)數(shù)或或類類處處理理的的數(shù)據(jù)據(jù)類類型型進進行行參參數(shù)數(shù)化化,在在使使用用時時再再對對數(shù)數(shù)據(jù)據(jù)類類型型進進行行實實例例化化。。(二二))作作用用實現(xiàn)現(xiàn)代代碼碼重用用,提提高高程程序序開開發(fā)發(fā)效效率率。。(三三))模模板板的的分分類類函數(shù)數(shù)模模板板類模模板板75函函數(shù)數(shù)模模板板(一一))函函數(shù)數(shù)模模板板的的聲聲明明template<classT1,,classT2……><返返回回類類型型><函函數(shù)數(shù)名名>((參參數(shù)數(shù)表表)){//函函數(shù)數(shù)體體定定義義}注意意::T1,,T2是是參參數(shù)數(shù)化化類類型型,,class也也可可寫寫為為typename。76類類模模板板(一一))問問題題引引入入舉例例1、、定定義義對對兩兩個個整整數(shù)數(shù)進進行行比比較較的的類類Compare_int。。2、、定定義義對對兩兩個個實實數(shù)數(shù)進進行行比比較較的的類類Compare_double。。77類類模模板板(一一))問問題題引引入入classCompare_int{intx,y;public:Compare(inta,intb){x=a;y=b;}intmax(){returnx>y?x:y;}intmin(){returnx<y?x:y;}};78類類模模板板(一一))問問題題引引入入classCompare_double{doublex,y;public:Compare(doublea,doubleb){x=a;y=b;}doublemax(){returnx>y?x:y;}doublemin(){returnx<y?x:y;}};79類類模模板板(一一))問問題題引引入入template<classT>classCompare{Tx,y;public:Compare(Ta,Tb){x=a;y=b;}Tmax(){returnx>y?x:y;}Tmin(){returnx<y?x:y;}};80類類模模板板(二二))類類模模板板的的定定義義1、、定定義義格格式式template<classT1,classT2,……>class類類模模板板名名{//類類成成員員定定義義;;};;其中中::class也也可可寫寫為為typename;81類類模模板板(二二))類類模模板板的的定定義義2、、成成員員函函數(shù)數(shù)在在類類體體外外的的定定義義格格

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論