c類(lèi)和對(duì)象練習(xí)題_第1頁(yè)
c類(lèi)和對(duì)象練習(xí)題_第2頁(yè)
c類(lèi)和對(duì)象練習(xí)題_第3頁(yè)
c類(lèi)和對(duì)象練習(xí)題_第4頁(yè)
c類(lèi)和對(duì)象練習(xí)題_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——c類(lèi)和對(duì)象練習(xí)題

第8章類(lèi)與對(duì)象8.1知識(shí)要點(diǎn)

1.把握類(lèi)與對(duì)象的概念和定義方法,把握類(lèi)成員的訪問(wèn)屬性。2.把握構(gòu)造函數(shù)的概念、定義方法和使用方法。3.把握析構(gòu)函數(shù)的概念、定義方法和使用方法。

4.把握拷貝構(gòu)造函數(shù)的概念、定義方法和使用方法。5.把握包含對(duì)象成員的類(lèi)構(gòu)造函數(shù)的定義方法。6.把握靜態(tài)成員的概念、定義方法、作用和特點(diǎn)。7.把握友元的概念、定義方法、作用和特點(diǎn)。8.把握類(lèi)模板的定義格式與使用方法。8.2典型例題分析與解答

例題1:以下有關(guān)類(lèi)的說(shuō)法不正確的是()。A.對(duì)象是類(lèi)的一個(gè)實(shí)例

B.任何一個(gè)對(duì)象只能屬于一個(gè)具體的類(lèi)C.一個(gè)類(lèi)只能有一個(gè)對(duì)象

D.類(lèi)與對(duì)象的關(guān)系和數(shù)據(jù)類(lèi)型與變量的關(guān)系相像答案:C

分析:對(duì)象是類(lèi)的一個(gè)實(shí)例,類(lèi)與對(duì)象的關(guān)系和數(shù)據(jù)與變量的關(guān)系相像,所以一個(gè)類(lèi)可以有多個(gè)對(duì)象。

例題2:下面()項(xiàng)是對(duì)構(gòu)造函數(shù)和析構(gòu)函數(shù)的正確定義。A.voidX::X(),voidX::~X()B.X::X(參數(shù)),X::~X()

C.X::X(參數(shù)),X::~X(參數(shù))

D.voidX::X(參數(shù)),voidX::~X(參數(shù))答案:B

分析構(gòu)造函數(shù)無(wú)返回類(lèi)型、可帶參數(shù)、可重載;析構(gòu)函數(shù)無(wú)返回類(lèi)型、不可帶參數(shù)、不可重載。

例題3:()的功能是對(duì)象進(jìn)行初始化。

A.析構(gòu)函數(shù)B.數(shù)據(jù)成員C.構(gòu)造函數(shù)D.靜態(tài)成員函數(shù)答案:C分析:當(dāng)一個(gè)對(duì)象定義時(shí),C++編譯系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)建立該對(duì)象并進(jìn)行初始化;當(dāng)一個(gè)對(duì)象的生命周期終止時(shí),C++編譯系統(tǒng)自動(dòng)調(diào)用析構(gòu)函數(shù)注銷(xiāo)該對(duì)象并進(jìn)行善后工作;

例題4:以下表達(dá)方式正確的是()。A.classP{B.classP{public:public:intx=15;intx;

voidshow(){coutclassone{inta1,a2;public:

one(intx1=0,x2=0);};

voidmain(){

onedata(2,3);

coutclassone

{inta1,a2;public:

one(intx1=0,intx2=0){a1=x1;a2=x2;}intgeta1(){returna1;}intgeta2(){returna2;}};

voidmain()

{onedata(2,3);

coutclassAmplifier{floatinvol,outvol;public:

Amplifier(floatvin,floatvout){invol=vin;outvol=vout;}floatgain();};

Amplifier::floatgain(){returnoutvol/invol;}voidmain()

{Amplifieramp(5.0,10.0);

coutclassAmplifier

{floatinvol,outvol;public:

Amplifier(floatvin,floatvout){invol=vin;outvol=vout;}floatgain();};

floatAmplifier::gain(){returnoutvol/invol;}voidmain()

{Amplifieramp(5.0,10.0);

coutclasspoint{intx,y;public:

point(inta,intb){x=a;y=b;

cout

intCsample::k=0;

Csample::Csample(){i=0;k++;}

voidCsample::Display(){coutclassBox

{intx,y,z;intv,s;public:

voidinit(intx1=0,inty1=0,intz1=0){x=x1;y=y1;z=z1;}voidvolue(){v=x*y*z;}

voidarea(){s=2*(x*y+x*z+y*z);}voidshow()

{coutclassCounter{intn;public:

Counter(inti=0){n=i;}

voidinit_Counter(intm){n=m;}voidin_Counter(){n++;}voidde_Counter(){n--;}

intget_Counter(){returnn;}voidshow(){coutclassrectangle{intlen,wid;public:

rectangle(inti=0,intj=0){len=i;wid=j;}

friendintarea(rectangletemp){ints=temp.len*temp.wid;returns;}

friendfun(rectangletemp){intp=2*(temp.len+temp.wid);returnp;}};

voidmain()

{rectanglea(10,20);

coutclassfac{intp;public:

fac(){p=1;}fac(intj){p=1;

if(j>=0)

for(inti=1;i>n;faca(n);

coutclassCdate

{intyear,month,day;inty1,m1,d1;public:

voidsetdate(inty,intm,intd){year=y;month=m;day=d;}voidshow()

{cout>y>>m>>d1;

d.setdate(y,m,d1);//加一天d.setdate(y,m,d1);//再加一天d.datetwo();d.show();}

8.4補(bǔ)充習(xí)題1.選擇題

(1)以下有關(guān)類(lèi)的說(shuō)法不正確的是。A.類(lèi)是一種用戶(hù)自定義的數(shù)據(jù)類(lèi)型

B.只有類(lèi)中的成員函數(shù)或類(lèi)的友元函數(shù)才能存取類(lèi)中的私有數(shù)據(jù)

C.在類(lèi)中(用class定義),假使不作特別說(shuō)明,所有的數(shù)據(jù)均為私有數(shù)據(jù)

D.在類(lèi)中(用class定義),假使不作特別說(shuō)明,所有的成員函數(shù)均為公有數(shù)據(jù)(2)以下有關(guān)析構(gòu)函數(shù)的表達(dá)不正確的是()

A.在一個(gè)類(lèi)只能定義一個(gè)析構(gòu)函數(shù)B.析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參C.析構(gòu)函數(shù)不允許用返回值D.析構(gòu)函數(shù)名前必需冠有符號(hào)“~〞(3)以下有關(guān)類(lèi)與結(jié)構(gòu)體的表達(dá)不正確的是()A.結(jié)構(gòu)體中只包含數(shù)據(jù);類(lèi)中封裝了數(shù)據(jù)和操作

B.結(jié)構(gòu)體的成員對(duì)外界尋常是開(kāi)放的;類(lèi)的成員可以被隱蔽C.用struct不能聲明一個(gè)類(lèi)型名;而class可以聲明一個(gè)類(lèi)名D.結(jié)構(gòu)體成員默認(rèn)為public;類(lèi)成員默認(rèn)為private(4)以下表達(dá)中不正確的是()

A.一個(gè)類(lèi)的所有對(duì)象都有各自的數(shù)據(jù)成員,它們共享函數(shù)成員B.一個(gè)類(lèi)中可以有多個(gè)同名的成員函數(shù)

C.一個(gè)類(lèi)中可以有多個(gè)構(gòu)造函數(shù)、多個(gè)析構(gòu)函數(shù)

D.在一個(gè)類(lèi)中可以聲明另一個(gè)類(lèi)的對(duì)象作為它的數(shù)據(jù)成員(5)以下不屬于構(gòu)造函數(shù)特征的是()

A.構(gòu)造函數(shù)名與類(lèi)名一致B.構(gòu)造函數(shù)可以重載

C.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)D.構(gòu)造函數(shù)必需指定函數(shù)類(lèi)型

(6)以下有關(guān)類(lèi)和對(duì)象的表達(dá)不正確的是()A.任何一個(gè)對(duì)象都?xì)w屬于一個(gè)具體的類(lèi)

B.類(lèi)與對(duì)象的關(guān)系和數(shù)據(jù)類(lèi)型與變量的關(guān)系相像C.類(lèi)的數(shù)據(jù)成員不允許是另一個(gè)類(lèi)的對(duì)象D.一個(gè)類(lèi)可以被實(shí)例化成多個(gè)對(duì)象(7)設(shè)有定義:classperson{intnum;

charname[10];public:

voidinit(intn,char*m);...};

personstd[30];

則以下表達(dá)不正確的是()

A.std是一個(gè)含有30個(gè)元素的對(duì)象數(shù)組

B.std數(shù)組中的每一個(gè)元素都是person類(lèi)的對(duì)象

C.std數(shù)組中的每一個(gè)元素都有自己的私有變量num和nameD.std數(shù)組中的每一個(gè)元素都有各自的成員函數(shù)init(8)設(shè)有以下類(lèi)的定義:classEx{intx;public:

voidsetx(intt=0);};

若在類(lèi)外定義成員函數(shù)setx(),以下定義形式中正確的是()A.voidsetx(intt){...}B.voidEx::setx(intt){...}C.Ex::voidsetx(intt){...}D.voidEx::setx(){...}

(9)以下關(guān)于靜態(tài)成員變量的表達(dá)不正確的是()A.靜態(tài)成員變量為類(lèi)的所有對(duì)象所公有B.靜態(tài)成員變量可以在類(lèi)內(nèi)任何位置上聲明C.靜態(tài)成

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論