作業(yè)━━第 5 章(3)━━對(duì)象數(shù)組、靜態(tài)成員、友元_第1頁
作業(yè)━━第 5 章(3)━━對(duì)象數(shù)組、靜態(tài)成員、友元_第2頁
作業(yè)━━第 5 章(3)━━對(duì)象數(shù)組、靜態(tài)成員、友元_第3頁
作業(yè)━━第 5 章(3)━━對(duì)象數(shù)組、靜態(tài)成員、友元_第4頁
作業(yè)━━第 5 章(3)━━對(duì)象數(shù)組、靜態(tài)成員、友元_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、對(duì)象數(shù)組、靜態(tài)成員、友元【學(xué)習(xí)要點(diǎn)】1掌握對(duì)象數(shù)組的概念、定義、初始化及其應(yīng)用。2掌握靜態(tài)成員數(shù)據(jù)的概念、定義方法及其應(yīng)用。3掌握靜態(tài)成員函數(shù)的概念、定義方法及其使用。4掌握友元函數(shù)的概念、定義方法及其應(yīng)用。5掌握友元類的概念、定義方法及其應(yīng)用。-【例題分析】1類的友元函數(shù)只能訪問該類的_。A所有成員B私有成員C保護(hù)成員D公有成員【答案】A【解析】一個(gè)類的友元函數(shù),對(duì)類中成員的訪問能力等同于類的成員函數(shù),可以訪問類中所有訪問權(quán)限的成員,包括公有、私有和保護(hù)成員。2關(guān)于友元函數(shù),下面描述中不正確的是_。A類的友元函數(shù)可以訪問該類的所有成員。B類的友元函數(shù)不受訪問權(quán)限限制,可以在類體中的任何位置聲

2、明。C類的友元函數(shù)是該類一個(gè)特殊的成員函數(shù)。D友元函數(shù)可以提高程序的運(yùn)行效率?!敬鸢浮緾【解析】類的友元函數(shù)可以訪問該類的所有成員,但友元函數(shù)不是類的成員函數(shù),正因?yàn)槿绱?,在類體中聲明友元函數(shù)時(shí),不受訪問權(quán)限限制,友元函數(shù)可以在類體中的任何位置聲明,友元函數(shù)可以提高程序的運(yùn)行效率。3關(guān)于靜態(tài)成員數(shù)據(jù),下面描述中不正確的是_。A. 靜態(tài)成員數(shù)據(jù)是屬于類的成員,不是某一個(gè)對(duì)象的獨(dú)立成員。B. 靜態(tài)成員數(shù)據(jù)不需要在類外初始化,也不用作定義性說明。C. 類外使用靜態(tài)成員數(shù)據(jù),成員名前面可通過作用域運(yùn)算符來聲明所屬類。D. 在類中聲明靜態(tài)成員數(shù)據(jù)時(shí),其前面需加關(guān)鍵字static修飾。【答案】B【解析】靜

3、態(tài)成員數(shù)據(jù)是類中所有對(duì)象共享使用的成員,是屬于類的成員,不是某一個(gè)對(duì)象的獨(dú)立成員,類外使用靜態(tài)數(shù)據(jù)成員時(shí),可通過作用域運(yùn)算符來說明所屬類,類中聲明靜態(tài)成員數(shù)據(jù)時(shí)其前面需加關(guān)鍵字static修飾,在類外需要作一次且僅能一次的定義性說明。4下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class Test public: static int Data ;int Test: Data=100 ; /ATest t1 ;void main() Test t2 ;t1.Data = 200 ; /Bt2.Data = 300 ; /Ccout << "

4、;t1.Data=" << t1.Data << 'n' ;cout << "t2.Data=" << t2.Data << 'n' ;cout << "Test:Data=" << Test:Data << 'n' ;【答案】第 1 行輸出:t1.Data=300 第 2 行輸出:t2.Data=300 第 3 行輸出:Test:Data=300 【解析】/A行是對(duì)類Test中靜態(tài)成員數(shù)據(jù)Data,在

5、類外作定義性說明,并初始化為100。/B行是對(duì)t1對(duì)象的Data成員數(shù)據(jù)賦值200,因?yàn)镈ata是類Test的靜態(tài)成員數(shù)據(jù),也是該類所有對(duì)象的共享成員,所以t1.Data也就是類的Test:Data,因此Test:Data的值也改為200,t2對(duì)象Data成員數(shù)據(jù)也就為200。/C行t2.Data賦值300,則t1.Data也改為300,類的Test:Data也是300。5下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class A int i ;public:static int count ;A( int a=0 ) i=a+count ; count+ ;

6、cout << count << t << i << n ; ;int A: count = 0 ;void main() A a( 100 ) ;A b ;A c( 200 ) ;cout << ”count=” << b.count << n ; 【答案】第 1 行輸出:1 100 第 2 行輸出:2 1 第 3 行輸出:3 202 第 4 行輸出:count=3 6根據(jù)靜態(tài)成員的特點(diǎn),指出下面程序的錯(cuò)誤。#include<iostream.h>#include<string.h>c

7、lass Part public:Part( char * pname = "no name" ) strcpy( name , pname ) ;noofpart+ ;no=noofpart ;cout << "creat the no:" << noofpart << "of part" << endl ; Part() noofpart- ;cout << "destroy the no:" << noofpart << &q

8、uot;of part" << endl ; static int number( ) return no ; protected:static int noofpart = 0 ;int no ;char name 40 ;void main() Part p1 , p2 ; 【解析】靜態(tài)成員數(shù)據(jù)不能在類聲明中分配空間和初始化,所以類聲明中只能對(duì)靜態(tài)成員數(shù)據(jù)進(jìn)行引用性聲明,即改為:static int noofpart ;在類外、文件作用域的某個(gè)地方對(duì)該靜態(tài)成員數(shù)據(jù)作一次且僅能一次的定義性說明,即增加:int Part:noofpart = 0 ;靜態(tài)成員函數(shù)只能直接訪

9、問靜態(tài)成員數(shù)據(jù),所以靜態(tài)成員函數(shù)number()中return no;不正確,應(yīng)改成:return noofpart ;-【思考題】選擇題1關(guān)于友元,下面描述中不正確的是_。A引入友元的主要目的是提高程序的運(yùn)行效率。B一個(gè)類的友元類中所有成員函數(shù)都是這個(gè)類的友元函數(shù)。C一個(gè)類的友元函數(shù)可以訪問該類的私有成員數(shù)據(jù)。D類與類的友元具有可交換性,若類A是類B的友元,則類B也是類A的友元?!敬鸢浮浚?關(guān)于類的靜態(tài)成員,下面描述中正確的是_。A類的靜態(tài)成員數(shù)據(jù)只能通過靜態(tài)成員函數(shù)訪問。B類的每個(gè)對(duì)象都有自己獨(dú)立的靜態(tài)成員數(shù)據(jù)。C類的靜態(tài)成員函數(shù)可以直接訪問類中的所有成員。D類的靜態(tài)成員數(shù)據(jù)可以通過“類名

10、:”進(jìn)行訪問?!敬鸢浮浚?this指針是某些函數(shù)中隱含的一個(gè)指針,下面具有this指針的函數(shù)是_。A非類成員的普通函數(shù)B類的友元函數(shù)C靜態(tài)成員函數(shù)D構(gòu)造函數(shù)【答案】?-寫出下列程序的輸出結(jié)果1下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class one int a ; static int b ;public:one( int x ) a=x ; b+=a ; void show() cout << b << "n" ; ;int one:b =10 ;void main() one e1( 20 ) ; e1.sh

11、ow() ;one e2( 30 ) ; e2.show() ;【答案】第 1 行輸出:?第 2 行輸出:? 2下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class Count public:Count( ) count+ ; Count( ) count- ; static int getn( ) return count ; private:static int count ; ;int Count:count = 100 ;void main() Count c1 , c2 , c3 , c4 ;cout << Count:getn( ) &

12、lt;< endl ;【答案】第 1 行輸出:?3下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class F int n ;public:void Setn( int i ) n=i ; friend int ss ( F a , int m ) int sum=0 ;for ( int i=0 ; i<m ; i+ ) if ( a i .n % 2 = 0 ) sum += a i .n ;return sum ; ;void main() F a 10 ;for ( int i=0 ; i<10 ; i+ ) a i .Setn( i+1

13、 ) ;cout << ss( a , 10 ) << endl ;【答案】第 1 行輸出:?4下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class A int sum ;public:static int count ;A( int a=0 ) sum = a+count ; count+ ; cout << count << 't' << sum << 'n' ; ;int A:count = 0 ;void main() A a 2 , b( 4 )

14、;cout << "count=" << b.count << 'n' ;【答案】第 1 行輸出:?第 2 行輸出:?第 3 行輸出:?第 4 行輸出:?5下面程序的運(yùn)行結(jié)果是_。#include<iostream.h>class Test int a ;static int b ;public:Test( int n ) a=n ; b+ ; void Print( ) cout << "a=" << a << "tb=" << b << endl ; ;int Test:b ;void main() Test t1( 10 ) ; Test t2( 20 ) ; Test t3( 30 ) ;t1.Print( ) ; t2.Print( ) ; t3.Print( ) ;【答案】第 1 行輸出:?第 2 行輸出:?第 3 行輸出:?-編程題1編寫程序。定義點(diǎn)類Point。 私有成員數(shù)據(jù)有:存放點(diǎn)坐標(biāo)值的x、y。 公有成員函數(shù)有:可設(shè)置點(diǎn)坐

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論