1. 實驗目的
(1) 了解繼承在物件導向程式設計中的重要作用。
(2) 進一步掌握繼承與派生的概念。
(3) 掌握通過繼承派生出乙個新的類的方法。
(4) 了解虛基類的作用與方法。
2. 實驗內容
(1) 將程式片段用公用繼承的方式補充和改寫完整;
(2) 將程式片段用保護繼承的方式補充和改寫完整;
(3) 比較兩種繼承方式,考慮二者在什麼情況下不能替代;
(4) 使用多重繼承方式派生出新類。
3.源**
#include
"pch.h"
#include
using
namespace std;
class
student
void
display()
private
:int num;
char name[10]
;char ***;};
class
student1
:public student
void
display_1()
private
:int age;
char addr[30]
;};int
main()
#include
"pch.h"
#include
using
namespace std;
class
student
;void student::
get_value()
void student::
display()
class
student1
:protected student
;void student1::
get_value_1()
void student1::
display1()
intmain()
#include
"pch.h"
#include
using
namespace std;
class
student
;void student::
get_value()
void student::
display()
class
student1
:public student
;void student1::
get_value_1()
void student1::
display1()
intmain()
#include
"pch.h"
#include
#include
using
namespace std;
class
teacher
;teacher::
teacher
(string nam,
int a,
char s, string tit,string ad,string t)
:name
(nam)
,age
(a),
***(s)
,title
(tit)
,addr
(ad)
,tel
(t)void teacher::
display()
class
cadre
;cadre::
cadre
(string nam,
int a,
char s,string p,string ad,string t)
:name
(nam)
,age
(a),
***(s)
,post
(p),
addr
(ad)
,tel
(t)void cadre::
display()
class
person
:public teacher,
public cadre
;person::
person
(string nam,
int a,
char s,string t,string p,string ad,string tel,
float w)
:teacher
(nam,a,s,t,ad,tel)
,cadre
(nam, a, s, t, ad, tel)
,wage
(w)void person::
show()
intmain()
4.執行結果
5.實驗總結
1.公用繼承是指在定義乙個派生類時將基類的繼承方式指定為public的;
2.保護繼承是指在定義乙個派生類時將基類的繼承方式指定為protected的;
3.公用繼承和保護繼承的執行過程相同的時候,其執行結果也相同;
4.不同的繼承方式使派生類的成員具有不同的特性,會對程式的執行產生不同的影響。
實驗五 繼承與派生
1.掌握派生類的定義方法的和派生類建構函式定義方法。2.掌握在不同繼承方式的情況下,基類成員在派生類中的訪問許可權。3.掌握在多繼承方式的情況下,建構函式與析構函式的呼叫時機與順序。1.除錯下列程式,並在對程式進行修改後再除錯,指出除錯中出錯原因。sy5 1.cpp includeusing nam...
實驗五 繼承與派生
1.掌握派生類的定義方法的和派生類建構函式定義方法。2.掌握在不同繼承方式的情況下,基類成員在派生類中的訪問許可權。3.掌握在多繼承方式的情況下,建構函式與析構函式的呼叫時機與順序。1.除錯下列程式,並在對程式進行修改後再除錯,指出除錯中出錯原因。程式如下 include using namespa...
實驗五 繼承與派生
sy5 1.cpp includeusing namespace std class a int geta public int a class b public a int getb void show void print cout j if j 1 goto loop else return ...