一. 填空題
1.類有2種用法:一是類的例項化,即生成類的物件;另一種是通過繼承 ,派生出新類。
2.類a繼承了類b,則類a稱為子類 ,類b稱為父類
語言提供的多繼承機制允許乙個派生類繼承多個基類,即使這些類相互無關。
二.判斷
1.在派生類的建構函式的初始化表中不能對包含基類的子物件初始化。n
2.乙個派生類可以作為另乙個類的派生類。y
3.派生類至少乙個基類。y
4.派生類中繼承的基類成員的訪問許可權到派生類保持不變。n
5.派生類的物件可以對它的基類成員中公有繼承的保護成員進行訪問。n
6.設定虛基類的目的是為了減少程式中的**。n
7.派生類的建構函式執行順序是:物件成員的建構函式,基類的建構函式,派生類本身的建構函式。n
8.基類的私有成員不能為派生類的成員所訪問。y
9.基類的公有成員在私有繼承時成為派生類的私有成員,而在保護繼承是則成為派生類的保護成員。y
10.在公有和保護繼承方式下,派生類的成員可以對基類的保護成員進行訪問。y
11.在公有和保護繼承方式下,派生類的物件可以對基類的保護成員進行訪問。n
三.程式分析
1. #include<>
class base;
class derive:public base
;void main( )
2.#include <>
class a;
class b;
class c:public b;
class d:public c;
void main( )
:a b a c d
3. #include<>
class base
void move(int x,int y)
void show();
class derive:private base
void show()
void showbase()
}; void main()
答案:a=1,b=2
x =5,y=6
a=6,b=9
5.#include<>
class a;
class b:public a
; class c:public a
; class d:public b,c
; void main()
:a b c d d
6. #include<>
class a;
class b:virtual public a
; class c:virtual public a
; class d:public b,c
; void main()
:a b d d
四.程式填空
有乙個furniture類,bed類和sofa類是其公有繼承的派生類,sleepersofa類是bed和sofa的公有派生類,為使程式中的多重繼承關係不出現模糊性,將正確內容填**上。
#include <>
class furniture
void setweight(int i)
int getweight( )
protected: int weight;
};class bed : virtual public furniture
void sleep();
class sofa:virtual public furniture
void watchtv();
class sleepersofa : public bed , public sofa
void foldout();
main()
實驗二 繼承與派生
c 上機實驗報告 專業學號姓名 一 實驗名稱 類與物件 4學時 二 目的要求 1 掌握繼承的意義和語法 2 掌握虛基類的概念與應用。三 實驗內容 1 設計乙個人員類person,包括姓名和衣服 褲子及鞋子的指標 將其衣服 褲子 鞋子分別設計成類clothes pants和shoe的物件,這3個類都是...
繼承與派生類知識要點
知識要點 1 1 掌握繼承和派生的定義,派生類的定義方法。1 掌握繼承的兩種型別 單繼承和多繼承。2 掌握private,public,protected三種繼承方式的特點。繼承方式決定了基類中的成員在派生類中的屬性。三種繼承方式的共同點 基類的private成員在派生類中不可見。區別 對於私有繼承...
總結c 之繼承和派生
繼承和派生 一 繼承 inheritance 在乙個已存在的類的基礎上建立乙個新的類。在c 中可重用性是通過繼承這一機制實現的。派生 derived 在已有類的基礎上新增自己的特性而產生新類的過程。共享基類的成員。派生類不會繼承基類的友元關係。派生類同時也是乙個 組合 建立乙個新類,類中的乙個或者多...