類之間的關係:
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、protected或private幾種型別。繼承型別是通過上面講解的訪問修飾符 access-specifier 來指定的。
我們幾乎不使用protected或private繼承,通常使用public繼承。當使用不同型別的繼承時,遵循以下幾個規則:
多繼承即乙個子類可以有多個父類,它繼承了多個父類的特性。訪問修飾符繼承方式是public、protected或private其中的乙個,用來修飾每個基類,各個基類之間用逗號分隔
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 乙個派生類可以同時有多個基類,這種情況稱為...