實驗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 公有繼承。基類的公有和保護成員的訪問屬性在...