c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)

c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)

ID:30346618

大?。?6.04 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2018-12-29

c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)_第1頁(yè)
c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)_第2頁(yè)
c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)_第3頁(yè)
c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)_第4頁(yè)
c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)_第5頁(yè)
資源描述:

《c++類及設(shè)計(jì),構(gòu)造函數(shù)和析構(gòu)函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、類是編程人員表達(dá)自定義數(shù)據(jù)類型的C++機(jī)制。它和C語(yǔ)言中的結(jié)構(gòu)類似,C++類支持?jǐn)?shù)據(jù)抽象和面向?qū)ο蟮某绦蛟O(shè)計(jì),從某種意義上說,也就是數(shù)據(jù)類型的設(shè)計(jì)和實(shí)現(xiàn)。一、類的設(shè)計(jì)1.類的聲明class類名{private://私有...public://公有...};2.類的成員一般在C++類中,所有定義的變量和函數(shù)都是類的成員。如果是變量,我們就叫它數(shù)據(jù)成員如果是函數(shù),我們就叫它成員函數(shù)。3.類成員的可見性private和public訪問控制符決定了成員的可見性。由一個(gè)訪問控制符設(shè)定的可訪問狀態(tài)將一直持續(xù)到下一個(gè)訪問控制符出現(xiàn),或者類聲明的結(jié)束。私有成員僅能被同一

2、個(gè)類中的成員函數(shù)訪問,公有成員既可以被同一類中的成員函數(shù)訪問,也可以被其他已經(jīng)實(shí)例化的類中函數(shù)訪問。當(dāng)然,這也有例外的情況,這是以后要討論的友元函數(shù)。類中默認(rèn)的數(shù)據(jù)類型是private,結(jié)構(gòu)中的默認(rèn)類型是public。一般情況下,變量都作為私有成員出現(xiàn),函數(shù)都作為公有成員出現(xiàn)。類中還有一種訪問控制符protected,叫保護(hù)成員,以后再說明。4.初始化在聲明一個(gè)類的對(duì)象時(shí),可以用圓括號(hào)()包含一個(gè)初始化表??聪旅嬉粋€(gè)例子:#includeiostream.hclassBox{private:intheight,width,depth;//3個(gè)私有數(shù)據(jù)成員

3、public:Box(int,int,int);~Box();intvolume();//成員函數(shù)};Box::Box(intht,intwd,intdp){height=ht;width=wd;depth=dp;}Box::~Box(){//nothing}intBox::volume(){returnheight*width*depth;}intmain(){Boxthisbox(3,4,5);//聲明一個(gè)類對(duì)象并初始化cout<

4、時(shí),也沒有虛函數(shù),并且不是從其他類中派生出來的,可以用{}來初始化。(以后再講解)5.內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別是:內(nèi)聯(lián)函數(shù)是在編譯過程中展開的。通常內(nèi)聯(lián)函數(shù)必須簡(jiǎn)短。定義類的內(nèi)聯(lián)函數(shù)有兩種方法:一種和C語(yǔ)言一樣,在定義函數(shù)時(shí)使用關(guān)鍵字inline。如:inlineintBox::volume(){returnheight*width*depth;}還有一種方法就是直接在類聲明的內(nèi)部定義函數(shù)體,而不是僅僅給出一個(gè)函數(shù)原型。我們把上面的函數(shù)簡(jiǎn)化一下:#includeiostream.hclassBox{private:intheight,width,

5、depth;public:Box(intht,intwd,intdp){height=ht;width=wd;depth=dp;}~Box();intvolume(){returnheight*width*depth;}};intmain(){Boxthisbox(3,4,5);//聲明一個(gè)類對(duì)象并初始化cout<

6、在一個(gè)類中有多個(gè)構(gòu)造函數(shù)。如果一個(gè)都沒有,編譯器將為該類產(chǎn)生一個(gè)默認(rèn)的構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)可能會(huì)完成一些工作,也可能什么都不做。絕對(duì)不能指定構(gòu)造函數(shù)的類型,即使是void型都不可以。實(shí)際上構(gòu)造函數(shù)默認(rèn)為void型。當(dāng)一個(gè)類的對(duì)象進(jìn)入作用域時(shí),系統(tǒng)會(huì)為其數(shù)據(jù)成員分配足夠的內(nèi)存,但是系統(tǒng)不一定將其初始化。和內(nèi)部數(shù)據(jù)類型對(duì)象一樣,外部對(duì)象的數(shù)據(jù)成員總是初始化為0。局部對(duì)象不會(huì)被初始化。構(gòu)造函數(shù)就是被用來進(jìn)行初始化工作的。當(dāng)自動(dòng)類型的類對(duì)象離開其作用域時(shí),所站用的內(nèi)存將釋放回系統(tǒng)??瓷厦娴睦?,構(gòu)造函數(shù)Box()函數(shù)接受三個(gè)整型擦黑素,并把他們賦值給立方體對(duì)象

7、的數(shù)據(jù)成員。如果構(gòu)造函數(shù)沒有參數(shù),那么聲明對(duì)象時(shí)也不需要括號(hào)。1.使用默認(rèn)參數(shù)的構(gòu)造函數(shù)當(dāng)在聲明類對(duì)象時(shí),如果沒有指定參數(shù),則使用默認(rèn)參數(shù)來初始化對(duì)象。#includeiostream.hclassBox{private:intheight,width,depth;public:Box(intht=2,intwd=3,intdp=4){height=ht;width=wd;depth=dp;}~Box();intvolume(){returnheight*width*depth;}};intmain(){Boxthisbox(3,4,5);//初始化Bo

8、xdefaulbox;//使用默認(rèn)參數(shù)cout<

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。