當建立乙個類時,不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為基類,新建的類稱為派生類。
其中,整合通過': '來進行繼承,繼承包括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 導致的問題。在程式設計領域,經常會遇到具有類似屬性,但細節或行為存在細...