實驗6 類的繼承與派生

2021-09-16 14:05:51 字數 3939 閱讀 5725

實驗6 類的繼承與派生

一、實驗目的

(1)掌握繼承和派生的定義,派生類的定義方法和繼承方式。

(2)掌握派生類中的建構函式的使用。

(3)掌握多重繼承的概念、定義方法、多重繼承派生類建構函式的執行順序。

(4)掌握虛基類的概念和定義方法。

二、實驗內容

定義乙個基類有姓名、性別、年齡;再由基類派生出教師類和學生類,教師類增加工號、職稱和工資,學生類增加學號、班級、專業和入學成績;由學生類和教師類派生在職研究生類和在讀教師類,在職研究生類增加工作單位。

三、實驗要求

在進行多重繼承中,將基類作為虛基類。

2.利用建構函式對類物件進行初始化。

3.對各種類的物件資訊進行修改、新增、查詢、顯示等操作。

4.將教師類的職稱和工資定義為private型成員,其它類的成員變數和成員函式型別依據需要定義為public或protected 或private型

標頭檔案head.h

#ifndef  _iquery_h

#define _iquery_h 1

#include

class

people

;class

teacher

:virtual

public people

;class

student

:virtual

public people

;class

master

:virtual

public teacher,

virtual

public student

;class

stuteacher

:virtual

public teacher,

virtual

public student

;#endif

成員函式定義檔案1.cpp

#include

#include

using

namespace std;

#include

int people::

getyear()

void people::

input()

void people::

output()

void people::

change

(int x)

}void student::

input()

void student::

output()

void student::

change

(int x)

}void teacher::

input()

void teacher::

output()

void teacher::

change

(int x)

}void master::

input()

void master::

output()

void master::

change

(int x)

}void stuteacher::

input()

void stuteacher::

output()

void stuteacher::

change

(int x)

}int people::

search

(string pname)

const

int student::

search1

(string pno)

const

int teacher::

search2

(string pno)

const

主函式檔案main.cpp

#include

#include

using

namespace std;

#define max 10

int n1=

0,n2=

0,n3=

0,n4=

0,n5=0;

#include

people a[max]

;student b[max]

;teacher c[max]

;master d[max]

;stuteacher e[max]

;void

mainscreen()

voidin(

)break;}

if(w==

'b')

break;}

if(w==

'c')

break;}

if(w==

'd')

break;}

if(w==

'e')

break;}

}while

(w!=

'a'&&w!=

'b'&&w!=

'c'&&w!=

'd'&&w!=

'e');}

voidcz(

)}for(i=

0;i<=n2;i++)}

for(i=

0;i<=n3;i++)}

for(i=

0;i<=n4;i++)}

for(i=

0;i<=n5;i++)}

break

;case

'b':

cout<<

"請輸入要查詢的學號:"

>search;

for(i=

0;i<=n2;i++)}

for(i=

0;i<=n4;i++)}

for(i=

0;i<=n5;i++)}

break

;case

'c':cout<<

"請輸入要查詢的工號:"

>search;

for(i=

0;i<=n3;i++)}

for(i=

0;i<=n4;i++)}

for(i=

0;i<=n5;i++)}

break

;default

:break

;}

cout<<

"是否要修改資訊?按y修改,否則預設不修改,若無資訊輸出,請無視此提示。"

; cin>>w;

if(w==

'y')

if(a2!=

100)

if(a3!=

100)

if(a4!=

100)

if(a5!=

100)}}

voidxs(

) cout<"學生資訊:"

0;i<=n2&&b[i]

.getyear()

!=0;i++

) cout<"教師資訊:"

0;i<=n3&&c[i]

.getyear()

!=0;i++

) cout<"在職研究生資訊:"

0;i) cout<"在讀教師資訊:"

0;i.getyear()

!=0;i++)}

void

main()

}while

(w!=

'a'&&w!=

'b'&&w!=

'c'&&w!=

'd'&&w!=

'e');}

}

編譯環境:microsoft visual c++ 6.0

實驗6 類的繼承與派生

實驗內容 1 程式功能 定義乙個矩形類,其中包括如下內容。保護資料成員 float length,width 矩形的長度與寬度 公有成員函式 建構函式 初始化矩形的長度與寬度 float area 計算面積 void disp 顯示結果 矩形的面積 利用矩形類為基類公有派生長方體類,其中包括如下內容...

類繼承與派生

繼承 1.在已有類的基礎上新增功能。2.新增資料。在派生類中新增指定字元。3.修改類方法的行為。派生 classa class b public a 一 說明 a是乙個公有基類 公有派生 則a.a的公有成員 成為b 的公有成員 b.a的 私有部分成為b 的一部分,但只能通過 a的公有和保護方法訪問。...

類的繼承與派生

類的繼承與派生 一 派生類生成過程 1 吸收基類成員。2 改造基類成員。3 擴充基類成員。在類的派生中,建構函式和析構函式不能被派生。派生類繼承了基類的全部資料成員和除了構造,析構之外的全部函式 成員。二 類的繼承方式有共有繼承 保護繼承 私有繼承三種 1 公有繼承。基類的公有和保護成員的訪問屬性在...