面向對象程序設計-學習指南_第1頁
面向對象程序設計-學習指南_第2頁
面向對象程序設計-學習指南_第3頁
面向對象程序設計-學習指南_第4頁
面向對象程序設計-學習指南_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、面向對象程序設計-學習指南一、選擇題1.繼承機制的作用是(      )  A.信息隱藏        B.數據封裝  C.定義新類        D.數據抽象2.類的析構函數的作用是(      )  A.一般成員函數       B.類

2、的初始化  C.對象的初始化       D.刪除對象創建的所有對象3.類的析構函數是在(      )調用的。  A.類創建時        B.創建對象時  C.刪除對象時       D.不自動調用4.在(      )情況下適宜采用inlin

3、e定義內聯函數。  A.函數體含有循環語句     B.函數體含有遞歸語句  C.函數代碼少、頻繁調用     D.函數代碼多、不常調用5.如果類A被說明成類B的友元,則(      )  A.類A的成員即類B的成員    B.類B的成員即類A的成員  C.類A的成員函數不得訪問類B的成員 D.類B不一定是類A的友元6.在類中聲明轉換函數時不能指定(

4、0;     )  A.參數    B.訪問權限   C.操作    D.標識符7.在公有繼承的情況下,基類成員在派生類中的訪問權限(      )  A.受限制   B.保持不變   C.受保護    D.不受保護8.C+類體系中,不能被派生類繼承的有(  

5、    )  A.轉換函數        B.構造函數  C.虛函數        D.靜態成員函數9.假定AB為一個類,則執行AB x;語句時將自動調用該類的(      )  A.有參構造函數       B.無參構造函數  C.拷貝構造函數&#

6、160;      D.賦值構造函數10.C+語言建立類族是通過(      )  A.類的嵌套   B.類的繼承   C.虛函數    D.抽象類11.C+對C語言作了很多改進,即從面向過程變成為面向對象的主要原因是(      )  A.增加了一些新的運算符  B.允許函數重載,并允許設置缺省參數

7、0; C.規定函數說明符必須用原型  D.引進了類和對象的概念12.下列符號不能組成標識符的是(      )  A.連接符        B.下劃線  C.大小寫字母       D.數字字符13.類型修飾符unsigned不能修飾(      )  A. char   

8、60;     B. int  C. long int        D. float14.在int a=3,int *p=&a;中,*p的值是(      )  A.變量a的地址值      B.無意義  C.變量p的地址值      D.315.下列關于指針

9、的操作中,錯誤的是(      )  A.兩個同類型的指針可以進行比較運算  B.可以用一個空指針賦給某個指針  C.一個指針可以加上兩個整數之差   D.兩個同類型的指針可以相加16.重載函數在調用時選擇的依據中,錯誤的是(      )  A.函數的參數       B.參數的類型  C.函數的名字   

10、    D.函數的類型17.一個函數功能不太復雜,但要求被頻繁調用,選用(      )  A.內聯函數        B.重載函數  C.遞歸函數        D.嵌套函數18.下列不是描述類的成員函數的是(      )  A.構造函數  &#

11、160;     B.析構函數  C.友元函數        D.拷貝構造函數19.構造函數不具備的特征的是(      )  A.構造函數的函數名與類名相同   B.構造函數可以重載  C.構造函數可以設置默認參數    D.構造函數必須指定類型說明20.通常,拷貝構造函數的參數是(   

12、;   )  A.某個對象名       B.某個對象的成員名  C.某個對象的引用名      D.某個對象的指針名21、下列關于類型轉換的描述中,()是錯誤的。 A、在不同類型操作數組成的表達式中,其表達式類型一定是最高類型double型; B、逗號表達式的類型是最后一個表達式的類型; C、賦值表達式的類型是左值的類型; D、由低向高的類型轉換是保值映射。 22、()不是構造函數的特征。 A、構造函數的函數名與類名相同;

13、B、構造函數可以重載; C、構造函數可以設置缺省參數; D、構造函數必須指定類型說明。23、在C+中,關于下列設置參數默認值的描述中,()是正確的。 A、不允許設置參數的默認值; B、設置參數默認值只能在定義函數時設置; C、設置參數默認值時,應該是先設置右邊的,再設置左邊的; D、設置參數默認值時,應該全部參數都設置。24、關于new運算符的下列描述中,()是錯誤的。 A、它可以用來動態創建對象和對象數組; B、使用它創建的對象或對象數組可以使用運算符delete刪除; C、使用它創建對象時要調用構造函數; D、使用它創建對象數組時必須指定初始值。25、重載函數在調用時選擇的依據中,()是錯

14、誤的。 A、參數個數; B、參數的類型; C、函數名字; D、函數的類型26、下列描述中,()是抽象類的特性。 A、可以說明虛函數; B、可以進行構造函數重載; C、可以定義友元函數; D、不能說明其對象。27、()是析構函數的特征。 A、一個類中只能定義一個析構函數; B、析構函數名與類名不同; C、析構函數的定義只能在類體內; D、析構函數可以有一個或多個參數;28、關于delete運算符的下列描述中,()是錯誤的。 A、它必須用于new返回的指針; B、它也適用于空指針; C、對一個指針可以使用多次該運算符; D、指針名前只有一對方括號符,不管所刪除數組的維數。29、const int

15、*p說明不能修改()。 A、p指針; B、p指針指向的變量; C、p指針指向的數據類型; D、上述A、B、C三者。30、關于子類型的描述中,()是錯誤的。A、子類型就是指派生類是基類的子類型;B、一種類型當它至少提供了另一種類型的行為,則這種類型是另一種類型的子類型;C、在公有繼承下,派生類是基類的子類型;D、子類型關系是不可逆的。二、填空題1.對象的三大基本特性是多態性、_、封裝性。2.C+語言的函數參數傳遞方式有傳值和_。3.重載賦值操作符時,應聲明為_函數。4.用_聲明的基類稱為虛基類。5.用_聲明函數稱為虛函數。6.派生類對基類繼承控制訪問有三種。派生類可以定義其基類中不具備的_。7.

16、靜態成員是對象的成員,_函數不是類的成員。8.在函數體之前加_關鍵字可以防止覆蓋函數改變數據成員的值。9.一個const對象只能訪問_成員函數。10.使用友元函數是為了提高程序效率,且節約了_開銷。11.在面向對象程序設計中,將一組數據和這組數據有關的操作集合組裝在一起形成對象,這個過程叫_;不同的對象可以調用相同名稱的函數并導致完全不同的行為的現象稱為_。12.假如一個類的名稱為MyClass,則這個類缺省的構造函數名稱為_;使用這個類的一個對象初始化該類的另一個對象時,可以調用_構造函數來完成此功能。13.局部對象和全局對象中,在同一程序中_生存期最長;this指針始終指向當前正在發出成員

17、函數調用命令的_。14.所謂賦值兼容規則是指在公有派生情況下,一個_類的對象可以作為_類的對象來使用的地方。15.帶有_的類稱為抽象類,它只能作為_來使用。16.控制格式輸入輸出的操作中,函數_是設置域寬的,函數_是設置填充字符。(要求給出函數名和參數類型)17.類模板用來表達具有相同_的數據_集。18.對已有的運算符賦予多重含義,使同一運算符作用于不同類型的數據,稱為_,它的實質就是_。19、所有的面向對象程序設計語言,都支持三個共同的本質特征、。20、為了解決程序中函數調用的效率問題,引入了,定義時需在函數前面加上說明。21、在類的定義當中,缺省的成員是成員。22、利用成員函數對二元運算符

18、進行重載時,其左操作數為,右操作數為。23、設置虛基類的目的是。24、動態聯編是在的支持下實現的。三、問答題1.什么是面向對象程序設計?它與面向過程程序設計的主要區別是什么? 2. 什么是繼承,單繼承,多繼承? 請舉例說明。 3. 有哪幾種派生方式? 4.什么是虛函數? 5.對象有什么特征? 6. 面向對象程序設計語言有什么特征? 7.什么是純虛函數?什么是抽象類? 8 C+為什么要有自己的輸入輸出系統?。9.什么是對象?什么是類? 10. 保護成員的特性是什么?11. 函數模板和模板函數的區別 4.什么是多態性? 舉例說明。三、應用題1. 如下兩個函數是否等價? float fun();fl

19、oat fun(void); 2. 下列在內存中分配一個整型數組并將其初始化為零的語句,正確與否?int *myval=new int40(O); 3. 建立類box,box的構造函數被傳遞了三個double值,每一個double值表示盒子的一條邊長。用box類計算立方體的體積,并存儲在一個double變量中,在box類中包含一個成員函數vol(),用來顯示每個box對象的體積。4.下面是一個計算器的類的定義,請完成該類的實現。 Class couter Int value; Public:Muter(int number);Void increment();Void decrement();

20、Int getvalue();Void print();參考答案一、 選擇題1.C       2.C        3.D        4.C       5.D6.C       7.B     

21、;   8.C        9.B       10.B11.D      12.A       13.D       14.D      15.D   16

22、.A      17.A       18.C       19.D      20.C21.A 22.D 23.B 24.D 25.B 26A 27.A 28.B 29B 30A 二、填空題1.抽象 2.傳地址 3.友元 4.class virtual 5.virtual6.數據和操作 7.友元 8.const 9.const 10.調

23、用類的成員函數11數據封裝多態性 12MyClass()拷貝(或復制)13全局對象對象 14派生基15純虛函數 基類 16setw(int)fill(char)17 處理方法 對象 18運算符重載 函數重載19封裝 多態性 繼承 20內聯函數  inline21Private 22this指針 成員函數參數23消除二義性虛函數 三、問答題1. 面向對象程序設計是一種程序設計方法,它的主要結構特點是:程序一般分為類的定義和類的使用兩部分,在主程序中定義各種對象并規定它們之間傳遞消息的規律;程序中一切操作都是通過向對象發送消息來實現的,對象接收到消息后,啟動有關方法完成相應的操作。它與面

24、向過程程序設計的主要區別,從表面看,一個主要面向對象,一個主要面向過程。面向過程程序設計的核心是程序功能分解,劃分功能模塊,產生數據結構以及對這些數據結構操作的過程,程序就這樣構成了。而面向對象程序設計則將數據和操作過程封裝成對象,獨立性強,可重用性強,給人展示了一種清新的程序“建筑”風格。2. 繼承是指由一個父類衍生出一個子類。父類和子類之間有共享特性,包括數據和方法。有差別和新增部分,比如現實中兒子長的酷像父親但是又不能說完全一樣。繼承分為單繼承和多繼承。 單繼承是指從一個類繼承而來,只具備父類的屬性和方法。比如定義個叫做“人”的類,那么“男人”類就是一個繼承,男人具備了人的基本特征,比如

25、有五官,直立行走以及會勞動等。 多繼承是指從多個類繼承而來,具備多個類的屬性和方法。比如有“玩具”類和“車”類兩個類,同時繼承這兩個類則產生“玩具車”類5什么是繼承,單繼承,多繼承? 請舉例說明。 繼承是指由一個父類衍生出一個子類。父類和子類之間有共享特性,包括數據和方法。有差別和新增部分,比如現實中兒子長的酷像父親但是又不能說完全一樣。繼承分為單繼承和多繼承。 單繼承是指從一個類繼承而來,只具備父類的屬性和方法。比如定義個叫做“人”的類,那么“男人”類就是一個繼承,男人具備了人的基本特征,比如有五官,直立行走以及會勞動等。多繼承是指從多個類繼承而來,具備多個類的屬性和方法。比如有“玩具”類和

26、“車”類兩個類,同時繼承這兩個類則產生“玩具車”類。3有兩種派生方式:公有派生和私有派生。4. 虛函數是在基類中被關鍵字virtual說明,并在派生類中重新定義的函數。它是重載的一種表現形式,它是一種動態的重載方式。在派生類中重新定義時,其函數原型,包括返回值,函數名,參數個數與參數類型的順序,都必須與基類中的原型完全相同。5對象有如下特征:(1)每一個對象必須有一個名字以區分其他對象,這個名字不能理解為人的名字,因為它不允許重名,可以理解為我們的身份證號。(2)我們用屬性來描述一個對象的某些特征(3)有一組操作,每一個操作決定對象的一個行為。6面向對象程序設計語言的特征是: (1)它支持對象

27、的概念(包括對象的所有特征,如封裝等); (2)它要求對象屬于類;(3)它提供繼承機制。7純虛函數是在一個基類中說明的虛函數,它在該基類中沒有定義,但是要求在它的派生類中定義自己的版本,或重載說明為純虛函數。純虛函數的一般形式如下:virtual type func_name(參數表)=O;type是函數的返回類型,func_name是函數名。如果一個類至少有一個純虛函數,那么就稱該類為抽象類。由于抽象類至少包含一個沒有定義功能的純虛函數,因此抽象類只能用作其他類的基類,不能建立抽象類對象。抽象類不能用作參數類型,函數返回類型或顯式轉換的類型。但是可以聲明指向抽象類的指針或引用,此指針可以指向它的派生類,進而實現多態性。8因為在C+中需要定義眾多的用戶自定義類型,面向對象方法的數據封裝性就是通過用戶所定義的類類型來體現的,而繼承性和多態性也是通過對片j戶定義的類對象的操作來體現的。但C語言的輸入輸出系統不支持用戶自定義的對象。因此C+建立了一個可擴展的輸入輸出系統,它可以通過修改和擴展來加入用戶自定義類型及相應操作。

溫馨提示

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

評論

0/150

提交評論