年度華科物件導向程序設計試卷答案

2023-01-31 21:48:07 字數 2392 閱讀 2976

學生類別考試日期院系

一、填空(共15分,每空1分)

1、編譯時的多型性是通過函式過載、運算子過載、模板來實現。

2、物件導向的四個基本特性是抽象 、 多型 、 繼承和封裝 。

3、假定ab為乙個類,則執行「c a(2), &p=a, c[1], *b=c;」語句時呼叫該類建構函式的次數為 2 。

4、c++類成員訪問屬性 public 、 private 、 protected 三種型別。

5、非成員函式應宣告為類的__友元___函式才能訪問這個類的private成員。

6、要實現動態聯編,必須通過基類指標或引用來呼叫虛函式實現。

7、在用class定義乙個類時,資料成員和成員函式的預設訪問許可權是_ 私有___。

8等四種運算子中,不可過載的運算子是 :: ,可採用友元函式過載的運算子是 + 。

9、成員函式中有純虛函式的類不能用來例項化物件。

二、問答題(共35分,每小題5分)

1.闡述為何在類的派生中要引入虛基類?

答案:當派生類從多個基類派生,而這些基類又從同乙個基類派生,則在訪問此共同基類中的成員時,將產生二義性。而且在派生類中會保留這個間接共同基類資料成員的多個同名成員。為了消除訪問的二義性,同時減少成員冗餘,c++中引入虛基類來解決。

2.簡述帶虛基類和非虛基類的多繼承派生類構造函式呼叫順序。

答案:多繼承基類建構函式初始化按虛基類優先,非虛基類,子物件,派生類自身建構函式順序呼叫進行初始化,同類按出現先後順序呼叫。只執行最後的派生類呼叫虛基類的建構函式,忽略虛基類其他派生類呼叫虛基類建構函式。

具體順序如下:

(1)按繼承虛基類的順序呼叫虛基類的建構函式;

(2)按繼承非虛基類的順序呼叫非虛基類的建構函式;

(3)按宣告成員物件的順序呼叫其建構函式;

(4)呼叫派生類自己的建構函式。

3.寫出下面程式的執行結果

4 外部物件g_glb_obj[構造]

5 外部靜態物件g_sta_obj[構造]

6 main內動態分配物件m_all_obj[構造]

7 main內呼叫fun函式

1 fun內: cal1

2 fun內靜態物件fun_sta_obj[構造]

3 fun內自動物件fun_obj[構造]

3 fun內自動物件fun_obj[析構]

1 fun內: cal2

3 fun內自動物件fun_obj[構造]

3 fun內自動物件fun_obj[析構]

6 main內動態分配物件m_all_obj[析構]

2 fun內靜態物件fun_sta_obj[析構]

5 外部靜態物件g_sta_obj[析構]

4 外部物件g_glb_obj[析構]

4.寫出下面程式的輸出結果

a::p1 a = 2

a::p2 a = 2 , b = 1.9

b::p1 a = 2

a::p2 a = 2 , b = 1.9

5.寫出下面程式的輸出結果

答案:3-呼叫base1類建構函式

4-呼叫base2類建構函式

6-呼叫base4類建構函式

5-呼叫base3類建構函式

1-呼叫obj1類建構函式

2-呼叫obj2類建構函式

3-呼叫base1類建構函式

3-呼叫base1類建構函式

4-呼叫base2類建構函式

7-呼叫派生類建構函式成功

8-end

#include

#include

using namespace std;

class obj1

#include <>

#include <>

void ** fspace_2d(int row,int col,int lenth)

}; ③ a a;

④ a(i, j) = i + j; // 矩陣元素賦值

cout << ⑤ a(i, j) 《輸出i行j列的元素值

2. 完成下面類中成員函式的定義,實現增量運算子過載。

include <>

public :

counter( )

friend counteroperator ++(counter &a); //前置增量運算子函式。

counteroperator ++(counter &a )

3. 完成下面類中成員函式的定義。

class str

set(a); } str(char *a)

str & operatorstr &a

void set初始化st char *s

st=new char[strlen(s)+1];

strcpy(st,s); } // 字串拷貝};

08單元2物件導向程序設計 程式設計題資訊

按以下要求編寫程式 1 建立乙個rectangle類,新增width和height兩個成員變數 2 在rectangle中新增兩種方法分別計算矩形的周長和面積 3 程式設計利用rectangle輸出乙個矩形的周長和面積 public class rectangle public float getl...

物件導向程序設計期中考試作業

1.定義乙個表示學生資訊的類student,要求如下 1 類student的成員變數 sno 表示學號 sname表示姓名 s 表示性別 sage表示年齡 sj a 表示j a課程成績。2 類student帶引數的構造方法 在構造方法中通過形參完成對成員變數的賦值操作。3 類student的方法成員...

河北工業大學物件導向程序設計實驗二類與物件

實驗二類與物件 一 實驗目的 1 學習類與物件的定義,掌握類與物件的使用方法。2 學習資料成員與成員函式的訪問方式,理解建構函式和析構函式的定義與執行過程,學會建構函式的過載方法。3 掌握陣列與指標的定義與使用方法,理解陣列與指標的儲存分配與表示。4 掌握用指標和引用向函式傳遞引數。5 掌握靜態資料...