C 繼承與派生

2021-10-03 16:11:45 字數 1662 閱讀 6132

類之間的關係:

has-a,uses-a 和 is-a

has-a包含關係   描述乙個類由多個「部件類」構成。實現has-a關係用類成員表示,即乙個類中的資料成員是另一種已經定義的類。

uses-a乙個類部分地使用另乙個類。通過類之間成員函式的相互聯絡,定義友員或物件引數傳遞實現。

is-a機制稱為「繼承」。關係具有傳遞性,不具有對稱性。

class 派生類名 : 繼承方式 基類名 ;

繼承方式:public、private和protected,預設處理是public。

class b : public a;

#include using namespace std;

// 基類

class shape

void setheight(int h)

protected:

int width;

int height;};

// 派生類

class rectangle: public shape};

int main(void)

派生類可以訪問基類中所有的非私有成員。因此基類成員如果不想被派生類的成員函式訪問,則應在基類中宣告為 private。

乙個派生類繼承了所有的基類方法,但下列情況除外

當乙個類派生自基類,該基類可以被繼承為public、protectedprivate幾種型別。繼承型別是通過上面講解的訪問修飾符 access-specifier 來指定的。

我們幾乎不使用protectedprivate繼承,通常使用public繼承。當使用不同型別的繼承時,遵循以下幾個規則:

多繼承即乙個子類可以有多個父類,它繼承了多個父類的特性。訪問修飾符繼承方式是public、protectedprivate其中的乙個,用來修飾每個基類,各個基類之間用逗號分隔

class 《派生類名》:《繼承方式1>《基類名1>,《繼承方式2>《基類名2>,…

;

#include using namespace std;

// 基類 shape

class shape

void setheight(int h)

protected:

int width;

int height;};

// 基類 paintcost

class paintcost };

// 派生類

class rectangle: public shape, public paintcost};

int main(void)

C 繼承與派生

派生新類 吸收已有類的成員 調整已有類成員和新增新的成員 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,派生類成員宣告 繼承方式有 public protected private 預設 公有繼承 基類的公有和保護乘員的訪問屬性在派生類中不變,基類的私有成員不能直接訪問 型別相容規則...

c 繼承與派生

繼承 與派生 一 派生方式的不同的表現 1 派生類在類內成員對基類成員 的訪問許可權 2 派生類的物件對基類成員的訪問許可權。二 公有繼承 1 基類protected和public的成員在派生類中訪問屬性保持不變 2 基類的private成員在派生類中不可訪問。3 派生類的成員 即派生類內 可以直接...

c 繼承與派生

一 基本概念 1 類的繼承,是新的類從已有類那裡得到已有的特性。或從已有類產生新類的過程就是類的派生。原有的類稱為基類或父類,產生的新類稱為派生類或子類。2 派生類的宣告 class 派生類名 繼承方式 基類名1,繼承方式 基類名2,繼承方式 基類名n 3 乙個派生類可以同時有多個基類,這種情況稱為...