c 學習(二)繼承

2021-08-25 11:46:09 字數 1191 閱讀 3043

當建立乙個類時,不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為基類,新建的類稱為派生類

其中,整合通過': '來進行繼承,繼承包括protect,public,provite三種繼承,其中三種區別如下:

訪問public

protected

private

同乙個類

yesyes

yes派生類

yesyes

no外部的類

yesno

no

#include#includeusing namespace std;

class a

void setheight(int h)

protected:

int width;

int height;

};class b:protect a

};int main()

;

例項:

#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)

結果:total area: 35

total paint cost: $2450

多繼承如果出現環狀繼承時,如a為基類,b->a,c->a,d->a->b,這樣就會導致父類a要重新建立新物件,要解決上面問題就要用虛擬繼承格式

class 類名: virtual 繼承方式 父類名

如下:#include using namespace std;

//基類

class a

{public:

a(){cout<

C 學習筆記二 繼承

繼續c 學習 繼承繼承型別 實現繼承和介面繼承 實現繼承 表示乙個型別派生與乙個基型別,擁有該基型別的所有成員欄位和函式。介面繼承 表示乙個型別只繼承函式的簽名,沒有繼承任何實現 結構和類 結構不支援實現繼承,但支援介面繼承。結構總是派生與system.valuetype,他們還可以派生與任何多個介...

C 學習(十四) 繼承(二)

class子類 繼承方式 父類1,繼承方式 父類2 當兩個或多個父類中,有同名的成員 被子類繼承後,呼叫時候需要加作用域進行 include using namespace std class base1 int m a class base2 int m a int m b class son p...

C 學習記錄 二 實現繼承

物件導向程式設計基於四個重要方面 封裝 抽象 繼承和多型。繼承是一種強大的屬性重用方式,是通向多型的跳板。這章中將學習 程式設計意義上的繼承 c 繼承語法 公有繼承 私有繼承和保護繼承 多繼承 隱藏基類方法和切除 slicing 導致的問題。在程式設計領域,經常會遇到具有類似屬性,但細節或行為存在細...