繼承與派生練習

2023-01-22 17:27:02 字數 1860 閱讀 7782

一. 填空題

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 在已有類的基礎上新增自己的特性而產生新類的過程。共享基類的成員。派生類不會繼承基類的友元關係。派生類同時也是乙個 組合 建立乙個新類,類中的乙個或者多...