C 期末考試複習資料四

2021-10-19 10:17:07 字數 4925 閱讀 1320

一、填空題

1、如果類a繼承了類b,則類a稱為( )類,類b稱為( )類。

2、在繼承機制下,當物件消亡時,編譯系統先執行( )的析構函式,然後才執行( )的析構函式。

3、繼承發生在利用現有類派生新類時,其中( )稱為基類,或( )類;( )稱為派生類,或( )類。

4、在c++語言中,派生類繼承了基類的全部資料成員和除( )之外的全部函式成員。

5、在公有繼承關係下,派生類的物件可以訪問基類中的( )成員,派生類的成員函式可以訪問基類中的( )成員。

6、在保護繼承關係下,基類的公有成員和保護成員將成為派生類中的( )成員,它們只能由派生類的( )來訪問,基類的私有成員將成為派生類中的( )成員。

7、在私有繼承關係下,基類的公有成員和保護成員將成為派生類中的( )成員,它們只能由派生類的( )來訪問,基類的私有成員將成為派生類中的( )成員。

8、在c++中,設定虛基類的目的是( ),通過關鍵字( )來標識虛基類。

9、若類y是類x的私有派生類,若類z是類y的公有派生類,則類z( )訪問類x的共有成員和保護成員。

10、如果乙個類有兩個或兩個以上直接基類,則這種繼承稱為( )。

11、在繼承關係中,( )稱為單繼承,( )稱為多繼承。

12、繼承具有( ),即當基類本省也是某乙個類的派生類時,底層的派生類也會自動繼承間接基類的成員。

13、在公有繼承中,基類中的公有成員作為派生類的( )。

14、派生類析構函式的執行順序與建構函式的執行順序( ),即先執行( )的析構函式,然後執行( )的析構函式,最後執行基類的析構函式。

15、由( )得到的派生類,其基類的所有公有成員都只能成為它的私有成員,這些私有成員只能被派生類的成員函式訪問,而派生類的例項無權訪問。

二、選擇題

1、要用派生類的物件訪問基類的保護成員,以下觀點正確的是( )。

a. 不可能實現 b. 可採用保護繼承

c. 可採用私有繼承 d. 可採用共有繼承

2、設有基類定義:

class base

;派生類採用( )繼承方式可以使成員變數b成為自己的私有成員。

a. 公有繼承 b.保護繼承

c. 私有繼承 d. 私有、保護、公有均可

3、c++中類的用途有兩種:一種是類的例項化,即生成類的物件;另一種是通過( )派生出新類。

a. 復用 b.繼承 c. 封裝 d. 引用

4、繼承具有( ),即當基類本身也是某一類的派生類時,底層的派生類也會自動繼承間接基類的成員。

a. 規律性 b.傳遞性 c. 重複性 d. 多樣性

5、基類中的( )不允許外界訪問,但允許派生類的成員訪問,這樣既有一定的隱藏能力,又提供了開放的介面。

a. 公有成員 b.私有成員

c. 私有成員函式 d. 保護成員

6、下列關於基類和派生類關係的描述中,( )是錯誤的。

a. 派生類是基類的具體化 b. 派生類是基類的子集

c. 派生類是基類定義的延續 d. 派生類是基類的組合

7、下列關於繼承的描述中,( )是錯誤的。

a. 析構函式不能被繼承

b. 派生類是基類的組合

c. 派生類的成員除了它自己的成員外,還包括了他的基類的成員

d. 派生類中繼承的基類成員的訪問許可權到派生保持不變

8、派生類的建構函式的成員初始化列表中,不能包含( )。

a. 基類的建構函式

b. 派生類中子物件的初始化

c. 基類的子物件的初始化

d. 派生類中一般資料成員的初始化

9、下列虛基類的宣告中正確的是( )。

a. class virtual b:public a

b. virtual class b:public a

c. class b:public a virtual

d. class b: virtual public a

10、下列對派生類的描述中,( )是錯誤的。

a.乙個派生類可以作為另乙個派生類的基類

b.派生類至少有乙個基類

c.派生類的成員除了它自己的成員外,還包含了它的基類的成員

d.派生類繼承的基類成員的訪問許可權到派生類中保持不變

11、建立派生類物件時,3種建構函式分別是a(基類的建構函式)、b(子物件的建構函式)和c(派生類的建構函式),這3種建構函式的呼叫順序為( )。

a.abc b.acb c.cab d.cba

12、閱讀以下程式

class a

};class b:public a

;對建構函式b的定義中,正確的是( )

a、b::b(int xx,int yy):a(xx),b(yy)

b、b::b(int xx,int yy):x(xx),b(yy)

c、b::b(int xx,int yy):a(xx),y(yy)

d、b::b(int xx,int yy):x(xx),y(yy)

13、在派生類中,過載乙個虛函式時,要求函式名、引數的個數、引數的型別、引數的順序和函式的返回型別( )

a、不同 b、部分相同 c、完全相同 d、沒有要求

14、下列關於類的繼承描述中,( )是正確的。

a、派生類可以訪問基類的所有資料成員,呼叫基類的所有成員函式

b、派生類也是基類,所以基類具有派生類的全部屬性和方法

c、繼承描述類的層次關係,派生類不可以具有與基類相同的屬性和方法

d、乙個基類可以有多個派生類,乙個派生類可以有多個基類

15、 當乙個派生類公有繼承乙個基類時,基類中的所有公有成員成為派生類的( )。

a、public成員 b、private成員 c、protected成員 d、友員

16、下面描述中,錯誤的是( )。

a、在基類定義中的public成員在公有繼承的派生類中可見,也能在類外被訪問

b、在基類定義的public和protected成員在私有繼承的派生類中可見,在類外可以被訪問

c、在基類定義的public和protected成員在保護繼承的派生類中可見

d、在派生類中不可見的成員要變成可訪問的需要進行訪問宣告

17、在建立派生類物件時,建構函式的執行順序是( )。

a、子物件建構函式、基類建構函式、派生類本身的建構函式

b、派生類本省的建構函式、基類建構函式、物件成員建構函式

c、基類建構函式、派生類本身的建構函式、物件成員建構函式

d、基類建構函式、物件成員建構函式、派生類本省的建構函式

18、 當不同的類具有相同的間接基類時,具有的特點是( )。

a、各派生類物件中不存在基類版本

b、派生類物件無法產生自己的基類版本

c、為了建立惟一的間接基類版本,應該改變繼承方式

d、為了建立惟一的間接基類版本,應該宣告虛基類

19、帶有虛基類的多層派生類建構函式的成員初始化列表中都要列出虛基類的建構函式,這樣將對虛基類的子物件進行初始化有( )。

a、一次 b、兩次

c、多次 d、與虛基類下面的派生類個數有關

20、下面關於派生類的描述中,正確的是( )。

a、派生類的預設繼承方式是保護的

b、乙個派生類不可以作為另乙個派生類的基類

c、派生類只繼承了基類的公有成員和保護成員

d、乙個派生類可以有多個基類

三、判斷題

1、派生類中繼承的基類成員的訪問許可權在派生類中保持不變。

2、設定虛基類的目的是為了提高執行效率。

3、在基類定義的public和protected成員在保護繼承的派生類中可見。

4、當乙個派生類公有繼承乙個基類時,基類中的所有公有成員成為派生類的保護成員。

5、乙個基類可以有多個派生類,乙個派生類可以有多個基類。

6、基類的建構函式和析構函式可以被派生類繼承。

7、派生類也是基類,所以基類具有派生類的全部屬性和方法。

8、當不同的類具有相同的間接基類時,為了建立惟一的間接基類版本,應該宣告虛基類。

9、c++的繼承機制支援單繼承和多繼承。

10、繼承描述類的層次關係,派生類不可以具有與基類相同的屬性和方法。

四、分析題

1、#include

class base

2、#include

class a

void move(int x,int y)

void show()

base(int i,int j);

~base();

void print()

~a()

void getlwh()

void put()

};2、

#include"iostream.h"

class vehicle

void putout()

};class b1:virtual public b0

};class b2:virtual public b0

};class d1:public b1,public b2

};void main()

5、#include

#include

using namespace std;

class person

protected:

string name,telephone,address;

};class student:virtual public person

protected:

string infor;

};class staff:virtual public person

protected:

string office;float wages;

};class teacher: public staff

protected:

string kcheng;

};class zteacher:public teacher,public student

void show()

};void main()

C 期末考試複習資料三

習題一 一 填空題 1 物件導向的程式設計有四大特點,它們是抽象 封裝 2 類中的成員使用特定的關鍵字指定不同的訪問特性,其中 成員是提供給外部的介面,在類中和類外可見。3 protected成員的訪問許可權 派生類 訪問protected成員,派生類物件 訪問protected成員,本類的物件 訪...

北航c 期末考試複習

筆者總結了北航計算機系c 考試的一些重點,希望對以後複習的同學能有所幫助 迭代器,工程模式,觀察者模式必考 變數基本資料型別 void bool char intfloat double wchar t short int typedef newtype oritype sizeof 三種用法 si...

C 期末考試複習筆記

c 語言是物件導向的程式語言,字尾名是.cs c 語言沒有指標c 語言完全擁有.net的自動 機制 c 語言不能用於硬體驅動程式的開發 net是乙個用於建立應用程式的平台 源 是乙個用於應用程式的核心,沒有源 則無法編譯乙個應用程式 工具欄是一些工具按鈕的組合 console.readline 的作...