C 的公有 保護 私有繼承派生

2021-09-24 03:43:13 字數 1516 閱讀 7236

c++類的成員分為三種屬性分別是公有、保護、私有。三種屬性控制著成員的訪問控制許可權。

首先講公有成員。公有成員是其類對外部的介面,任何外部函式都可以訪問公有資料或者函式。

其次是保護成員。保護成員是非派生類的外部函式無法訪問保護資料或者函式,對於此類下的派生類可以訪問到此類的保護資料或者函式。

最後將私有成員。私有成員只能是類內的函式訪問到其私有資料或者函式。

我之所以把它們按照這樣的順序講述,是因為我感覺它們有著控制許可權遞增的趨勢。控制力度是私有》保護》公有。

上述規則在任何基類以及派生類都是適用的。

下面講述公有、保護、私有繼承派生。

公有繼承:基類中的成員在派生類中的屬性都不變,基類的私有成員在派生類中無法訪問,基類的保護成員在派生類外其他函式無法訪問,基類的共有成員仍是派生類的介面,均可訪問。

保護繼承:基類中的公有成員以及保護成員在派生類中的屬性均為保護成員,即只能在類以及派生類中訪問,其他外部函式無法訪問。基類的私有成員在派生類中依舊無法訪問。

私有繼承:基類中的公有成員以及保護成員在派生類中的屬性均為私有成員,即只能在類中訪問,其他外部函式以及派生類中均午飯訪問。基類的私有成員也無法在派生類中訪問。

下面在vs下採用**的形式深入的理解一下三種屬性以及三種繼承的含義。

對基類a三種屬性成員的訪問。

#include//基類a

class a;//construtor

a(int b, int o, int i) :anum_pub(b), anum_pro(o), anum_pri(i){};//construtor with

void fun()

public:

int anum_pub;

protected:

int anum_pro;

private:

int anum_pri;

};void main()

保護成員以及私有成員在外部就無法訪問

派生類b公有繼承基類a

#include//基類a

class a;//construtor

a(int b, int o, int i) :anum_pub(b), anum_pro(o), anum_pri(i){};//construtor with

void fun();//construtor

a(int b, int o, int i) :anum_pub(b), anum_pro(o), anum_pri(i){};//construtor with

void fun();//construtor

a(int b, int o, int i) :anum_pub(b), anum_pro(o), anum_pri(i){};//construtor with

void fun(){

std::cout << "anum_pub: "《從結果上來看私有繼承與上面的保護繼承沒有太大變化,但是如果在派生類b的派生類c中,派生類c的中將無法訪問到a:anum_pub,anum_pro以及anum_pri。

C 私有 保護 公有繼承

一 公有 pulic 繼承 繼承 是類的重要特性。a類繼承b類,我們稱b類為 基類 也稱為 父類 a類則相應地被稱為 派生類 或 子類 a類繼承了b類之後,a類就具有了b類的部分成員。那麼,究竟從基類那兒得到了哪些成員,這由2方面決定,繼承方式,基類成員的訪問許可權 即public private ...

C 繼承 公有,私有,保護

公有繼承 public 私有繼承 private 保護繼承 protected 是常用的三種繼承方式。1.公有繼承 public 公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。2.私有繼承 private...

C 繼承 公有,私有,保護

公有繼承 public 私有繼承 private 保護繼承 protected 是常用的三種繼承方式。1.公有繼承 public 公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。2.私有繼承 private...