




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 1頁(yè)頁(yè) 在現(xiàn)實(shí)生活中,對(duì)象通常是有形的在現(xiàn)實(shí)生活中,對(duì)象通常是有形的( (如一個(gè)人、一輛車如一個(gè)人、一輛車) ),但也可,但也可以是無(wú)形的以是無(wú)形的( (如一項(xiàng)計(jì)劃、一件事情如一項(xiàng)計(jì)劃、一件事情) )??傊?。總之,。它具有兩方面的特征:。它具有兩方面的特征:( (如人的身如人的身高、體重、年齡、性別高、體重、年齡、性別) )和和( (琴棋書畫、能歌善舞琴棋書畫、能歌善舞) ),前者表,前者表示對(duì)象的示對(duì)象的,后者表示對(duì)象的,后
2、者表示對(duì)象的。 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 2頁(yè)頁(yè)數(shù)數(shù) 據(jù)據(jù)操作代碼操作代碼對(duì)對(duì)象象 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,實(shí)際上就是將現(xiàn)實(shí)生活中對(duì)象面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,實(shí)際上就是將現(xiàn)實(shí)生活中對(duì)象的概念應(yīng)用到了程序設(shè)計(jì)領(lǐng)域。它的基本點(diǎn)是盡可能地按照人的概念應(yīng)用到了程序設(shè)計(jì)領(lǐng)域。它的基本點(diǎn)是盡可能地按照人類認(rèn)識(shí)世界的方法和思維方式來(lái)分析和解決問(wèn)題。把要研究的類認(rèn)識(shí)世界的方法和思維方式來(lái)分析和解決問(wèn)題。把要研究的事、物、概念等都稱為對(duì)象,以對(duì)象為基本元素,作為分析和事、物
3、、概念等都稱為對(duì)象,以對(duì)象為基本元素,作為分析和解決問(wèn)題的核心。解決問(wèn)題的核心。 程序設(shè)計(jì)中的對(duì)象概念也包括兩方面的特征:程序設(shè)計(jì)中的對(duì)象概念也包括兩方面的特征:數(shù)據(jù)數(shù)據(jù)( (對(duì)對(duì)應(yīng)應(yīng)“屬性屬性”) )和和操作操作( (對(duì)應(yīng)對(duì)應(yīng)“功能功能”) ),如下圖所示:,如下圖所示: 其中的數(shù)據(jù)我們稱為其中的數(shù)據(jù)我們稱為數(shù)據(jù)成員數(shù)據(jù)成員(data member)(data member),操作我們稱為,操作我們稱為成成員函數(shù)員函數(shù)(member function)(member function)。 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院
4、計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 3頁(yè)頁(yè)(一個(gè)國(guó)家的最高政權(quán)機(jī)關(guān)所在地,是全國(guó)的政治中心)(一個(gè)國(guó)家的最高政權(quán)機(jī)關(guān)所在地,是全國(guó)的政治中心)(能制造工具并使用工具進(jìn)行勞動(dòng)的高等動(dòng)物)(能制造工具并使用工具進(jìn)行勞動(dòng)的高等動(dòng)物) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 4頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 5頁(yè)頁(yè)
5、 在在C+C+中定義一個(gè)中定義一個(gè)“類類”類型的方法和定義一個(gè)結(jié)構(gòu)體類類型的方法和定義一個(gè)結(jié)構(gòu)體類型的方法是相似的型的方法是相似的 。1 1、結(jié)構(gòu)體類型和結(jié)構(gòu)體變量的定義、結(jié)構(gòu)體類型和結(jié)構(gòu)體變量的定義 struct student int num; char name10 char sex ; struct student student 1,student2; 以上結(jié)構(gòu)體變量以上結(jié)構(gòu)體變量只包含了數(shù)據(jù)(變量),只包含了數(shù)據(jù)(變量),沒(méi)有包含對(duì)數(shù)據(jù)沒(méi)有包含對(duì)數(shù)據(jù)進(jìn)行處理的任何操作。若需要對(duì)數(shù)據(jù)進(jìn)行處理,則必須另外編進(jìn)行處理的任何操作。若需要對(duì)數(shù)據(jù)進(jìn)行處理,則必須另外編寫有關(guān)的操作語(yǔ)句。寫有關(guān)的
6、操作語(yǔ)句。 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 6頁(yè)頁(yè)n 定義定義“類類”的方法是的方法是由定義結(jié)構(gòu)體類型的方法演變而來(lái)由定義結(jié)構(gòu)體類型的方法演變而來(lái)的。的。它除了包含數(shù)據(jù)部分,還包含了對(duì)這些數(shù)據(jù)的操作部分。它除了包含數(shù)據(jù)部分,還包含了對(duì)這些數(shù)據(jù)的操作部分。n StudStud是一個(gè)類名,其是一個(gè)類名,其表示,以示與對(duì)表示,以示與對(duì)象名的區(qū)別象名的區(qū)別2 2、類和對(duì)象的定義、類和對(duì)象的定義 LanJimin copyright Thursday, January 2
7、7, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 7頁(yè)頁(yè) #include #include #include #include class Stud / 聲明以下部分為私有的聲明以下部分為私有的 int num; char name10; char sex ; / 聲明以下部分為公有的聲明以下部分為公有的 void init(int number, char string , char c ) num=number; strcpy(name, string); sex=c; void display( ) cout”num:”numendl; cout
8、”name:”nameendl; cout”sex:”sexendl; / ; Stud stud1,stud2; / 定義了定義了stud類的兩個(gè)對(duì)象類的兩個(gè)對(duì)象 3 3、類的成員分類:、類的成員分類:方式方式來(lái)劃分的,它包括三來(lái)劃分的,它包括三 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 8頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 9頁(yè)頁(yè) L
9、anJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 10頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 11頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 12頁(yè)頁(yè)class Stud private: public:void init(i
10、nt number, char string , char c ) num=number; strcpy(name, string); sex=c; void display( ) cout”num:”numendl; cout”name:”nameendl; cout”sex:”sexnum=number; strcpy(this-name, string); this-sex=c;這樣,當(dāng)你在程序中調(diào)用:這樣,當(dāng)你在程序中調(diào)用: stud1.init(10010,”LiMin”,F); stud2.init(10011,”ZhangYang”,M);時(shí),編譯器又會(huì)將他們對(duì)應(yīng)地改為:時(shí),編譯
11、器又會(huì)將他們對(duì)應(yīng)地改為: stud:init(10010,”LiMin”,F,(stud *)&stud1); stud:init(10011,”ZhangYang”,M,(stud *)&stud2);可見(jiàn),在系統(tǒng)中每個(gè)成員函數(shù)只有一份,可見(jiàn),在系統(tǒng)中每個(gè)成員函數(shù)只有一份,所有同類的不同對(duì)象都調(diào)用所有同類的不同對(duì)象都調(diào)用同一份成員函數(shù)同一份成員函數(shù)。而同類的不同對(duì)象卻具有不同的數(shù)據(jù)成員空間。而同類的不同對(duì)象卻具有不同的數(shù)據(jù)成員空間。 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程
12、序設(shè)計(jì)程序設(shè)計(jì) 第第 14頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 15頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 16頁(yè)頁(yè)注意:把構(gòu)造函數(shù)和其它成員函數(shù)放在外注意:把構(gòu)造函數(shù)和其它成員函數(shù)放在外部定義時(shí)部定義時(shí), ,其函數(shù)名前要加上其函數(shù)名前要加上“類名類名:”:”。因?yàn)樵陬惗x的外部,可能有各種函數(shù)定因?yàn)樵陬惗x的外部,可能有各種函數(shù)定
13、義,為了區(qū)分成員與非成員函數(shù),區(qū)分此義,為了區(qū)分成員與非成員函數(shù),區(qū)分此類成員函數(shù)和彼類成員函數(shù),所以加上類成員函數(shù)和彼類成員函數(shù),所以加上“類名類名:”:”是必要的。是必要的。構(gòu)造函數(shù)的定義可以放到類的外部,比如:構(gòu)造函數(shù)的定義可以放到類的外部,比如: LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 17頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 1
14、8頁(yè)頁(yè) LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 19頁(yè)頁(yè)關(guān)于構(gòu)造函數(shù)的幾點(diǎn)重要說(shuō)明:關(guān)于構(gòu)造函數(shù)的幾點(diǎn)重要說(shuō)明:1、C+規(guī)定,每個(gè)類必須至少要有一個(gè)構(gòu)造函數(shù),沒(méi)有構(gòu)造函數(shù),就規(guī)定,每個(gè)類必須至少要有一個(gè)構(gòu)造函數(shù),沒(méi)有構(gòu)造函數(shù),就不能創(chuàng)建任何對(duì)象。不能創(chuàng)建任何對(duì)象。2、在定義一個(gè)類時(shí),如果一個(gè)構(gòu)造函數(shù)也不提供,則、在定義一個(gè)類時(shí),如果一個(gè)構(gòu)造函數(shù)也不提供,則C+編譯系統(tǒng)會(huì)編譯系統(tǒng)會(huì)自動(dòng)為其提供一個(gè)默認(rèn)的構(gòu)造函數(shù),該構(gòu)造函數(shù)是一個(gè)無(wú)參構(gòu)造自動(dòng)為其提供一個(gè)默認(rèn)的構(gòu)造函數(shù),該構(gòu)
15、造函數(shù)是一個(gè)無(wú)參構(gòu)造函數(shù),它只負(fù)責(zé)創(chuàng)建對(duì)象,而不進(jìn)行初始化函數(shù),它只負(fù)責(zé)創(chuàng)建對(duì)象,而不進(jìn)行初始化(P348有誤有誤)。 與變量定義相似,在用默認(rèn)構(gòu)造函數(shù)創(chuàng)建對(duì)象時(shí),如果創(chuàng)建與變量定義相似,在用默認(rèn)構(gòu)造函數(shù)創(chuàng)建對(duì)象時(shí),如果創(chuàng)建的是全局對(duì)象或靜態(tài)對(duì)象,則該對(duì)象的位模式的是全局對(duì)象或靜態(tài)對(duì)象,則該對(duì)象的位模式(即數(shù)據(jù)成員的每一即數(shù)據(jù)成員的每一位位)全為全為0,否則,對(duì)象值是隨機(jī)的。,否則,對(duì)象值是隨機(jī)的。3、只要在定義類時(shí)為其提供了一個(gè)構(gòu)造函數(shù)、只要在定義類時(shí)為其提供了一個(gè)構(gòu)造函數(shù)(不管它是有參的還是無(wú)不管它是有參的還是無(wú)參的參的),編譯系統(tǒng)就不再為其提供默認(rèn)構(gòu)造函數(shù)了。,編譯系統(tǒng)就不再為其提供默認(rèn)
16、構(gòu)造函數(shù)了。 因此,如果我們?yōu)轭惗x了一個(gè)有參的構(gòu)造函數(shù),還想要一因此,如果我們?yōu)轭惗x了一個(gè)有參的構(gòu)造函數(shù),還想要一個(gè)無(wú)參的構(gòu)造函數(shù),則還得必須自己定義。個(gè)無(wú)參的構(gòu)造函數(shù),則還得必須自己定義。 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 20頁(yè)頁(yè)例如:下面的代碼只定義了一個(gè)有參的構(gòu)造函數(shù),面對(duì)創(chuàng)建無(wú)參例如:下面的代碼只定義了一個(gè)有參的構(gòu)造函數(shù),面對(duì)創(chuàng)建無(wú)參對(duì)象,將不能正確地編譯。對(duì)象,將不能正確地編譯。#includeclass Student public: Stude
17、nt(char * pName) strcpy(name, pName); namesizeof(name)-1=0; protected: char name20;void main( ) Student noName; / error:企圖調(diào)用無(wú)參構(gòu)造函數(shù)創(chuàng)建對(duì)象,企圖調(diào)用無(wú)參構(gòu)造函數(shù)創(chuàng)建對(duì)象, / 但類定義中卻沒(méi)有與之匹配的構(gòu)造函數(shù)。但類定義中卻沒(méi)有與之匹配的構(gòu)造函數(shù)。 Student classmate(“Jenny”); / ok要避免如下的錯(cuò)誤,只需在此增要避免如下的錯(cuò)誤,只需在此增加一個(gè)無(wú)參的構(gòu)造函數(shù)便可:加一個(gè)無(wú)參的構(gòu)造函數(shù)便可:Student ( ) sizeof(name)
18、測(cè)出的值為測(cè)出的值為20;則此語(yǔ)句的作用是:避免因則此語(yǔ)句的作用是:避免因傳遞進(jìn)來(lái)的字符串長(zhǎng)度大于傳遞進(jìn)來(lái)的字符串長(zhǎng)度大于name數(shù)組的長(zhǎng)度,引起結(jié)束數(shù)組的長(zhǎng)度,引起結(jié)束標(biāo)志的丟失。標(biāo)志的丟失。 LanJimin copyright Thursday, January 27, 2022 四川理工學(xué)院計(jì)算機(jī)學(xué)院四川理工學(xué)院計(jì)算機(jī)學(xué)院 C+程序設(shè)計(jì)程序設(shè)計(jì) 第第 21頁(yè)頁(yè)1 1、析構(gòu)函數(shù)的作用:、析構(gòu)函數(shù)的作用: 在創(chuàng)建一個(gè)對(duì)象時(shí),構(gòu)造函數(shù)除了要為對(duì)象本身在創(chuàng)建一個(gè)對(duì)象時(shí),構(gòu)造函數(shù)除了要為對(duì)象本身( (數(shù)據(jù)成員數(shù)據(jù)成員) )分分配相應(yīng)的空間以外,還可能分配其它的資源,比如:在構(gòu)造函數(shù)中配相應(yīng)的空間
19、以外,還可能分配其它的資源,比如:在構(gòu)造函數(shù)中打開(kāi)一個(gè)文件,或者從堆中分配一片內(nèi)存。所有這些資源在對(duì)象生打開(kāi)一個(gè)文件,或者從堆中分配一片內(nèi)存。所有這些資源在對(duì)象生命期結(jié)束之前必須被釋放。這項(xiàng)任務(wù)是由專門的析構(gòu)函數(shù)來(lái)完成的。命期結(jié)束之前必須被釋放。這項(xiàng)任務(wù)是由專門的析構(gòu)函數(shù)來(lái)完成的。當(dāng)對(duì)象脫離其作用域時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)當(dāng)對(duì)象脫離其作用域時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù),“,“清理善后清理善后”工工作。作。2 2、析構(gòu)函數(shù)的使用:、析構(gòu)函數(shù)的使用: 析構(gòu)函數(shù)名也與類名相同,但要在函數(shù)名前面加一個(gè)波浪符析構(gòu)函數(shù)名也與類名相同,但要在函數(shù)名前面加一個(gè)波浪符 ,例如例如 stud(), stud(), 以示區(qū)別于構(gòu)造函數(shù)。以示區(qū)別于構(gòu)造函數(shù)。 析構(gòu)函數(shù)也是一個(gè)特殊的類成員函數(shù),它沒(méi)有返回類型,沒(méi)有析構(gòu)函數(shù)也是一個(gè)特殊的類成員函數(shù),它沒(méi)有返回類型,沒(méi)有參數(shù),不能隨意調(diào)用,也不能被重載。參數(shù),不能隨意調(diào)用,也不能被重載。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)盆景行業(yè)發(fā)展趨勢(shì)規(guī)劃分析報(bào)告
- 柳州城市職業(yè)學(xué)院《城鄉(xiāng)規(guī)劃原理C》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東體育學(xué)院《有機(jī)化學(xué)I2》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城市理工學(xué)院《交換原理與NGN》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年海南省安全員考試題庫(kù)附答案
- 遼寧工程技術(shù)大學(xué)《領(lǐng)導(dǎo)科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東商業(yè)職業(yè)技術(shù)學(xué)院《生物化學(xué)與分子生物學(xué)(含遺傳學(xué))》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄭州城市職業(yè)學(xué)院《英語(yǔ)高級(jí)視聽(tīng)說(shuō)》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏師范高等??茖W(xué)?!?0世紀(jì)西方文學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湛江科技學(xué)院《土木工程施工技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 小升初、小學(xué)生滿分優(yōu)秀作文匯編100篇
- 次聲波在臨床醫(yī)學(xué)及麻醉中的作用 次聲波在臨床麻醉中的作用
- 加盟招商方案PPT模板
- 中石油HSE培訓(xùn)試題集(共33頁(yè))
- 2022年云南省中考數(shù)學(xué)試題及答案解析
- 噴(烤)漆房VOCs治理設(shè)施日常運(yùn)行臺(tái)賬
- TS16949五大工具:SPC
- 五年級(jí)下冊(cè)-綜合實(shí)踐教案
- 貴州出版社小學(xué)五年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案全冊(cè)
- [方案]隱框玻璃幕墻施工方案
- 設(shè)備安裝檢驗(yàn)批表格
評(píng)論
0/150
提交評(píng)論