C 公有繼承 私有繼承 保護繼承的詳細區別

2021-10-19 22:37:44 字數 658 閱讀 3589

不同的繼承方式主要體現在以下兩個方面:

派生類成員對於基類的訪問許可權 (類內)

通過派生類物件對基類成員的訪問許可權(類外)

1、需要被外界(派生類物件)訪問的成員直接設定為public

2、只能在基類類中訪問的成員設定為private

3、只能在基類和子類中訪問的成員設定為protected,protected成員的訪問許可權介於public和private之間。

基類private成員在派生類中無論是類內還是類外都無法訪問。在派生類中無論以什麼方式繼承都是不可見的。這裡的不可見是指基類的私有成員還是被繼承到了派生類物件中,但是語法上限制派生類物件不管在類裡面還是類外面都不能去訪問它。

如果基類成員不想在類外直接訪問,但需要在派生類中能訪問,就定義為protected。可見,保護成員限定符protected是因為繼承才出現的。

公有繼承:

note:

基類的私有成員在派生類中不可直接訪問,而基類的保護成員在派生類中可以直接訪問。

基類的私有成員和保護成員在派生類外都無法通過派生類的物件直接訪問。

因此保護成員的主要意義在於:派生類中可以訪問該保護成員。

C 公有繼承,保護繼承,私有繼承

1.公有繼承 public 公有繼承時,對基類的公有成員和保護成員的訪問屬性不變,派生類的新增成員可以訪問基類的公有成員和保護成員,但是訪問不了基類的私有成員。派生類的物件只能訪問派生類的公有成員 包括繼承的公有成員 訪問不了保護成員和私有成員。include using namespace std...

C 公有繼承 私有繼承 保護繼承

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

公有繼承 私有繼承 保護繼承

1.公有繼承 基類成員對派生類的可見性對派生類而言,基類的公有成員和保護成員可見,他們作為派生類的成員時,保持原有的狀態。基類的私有成員不可見,派生類不可訪問基類中的私有成員。基類成員對派生類物件的可見性對派生類物件而言,基類的公有成員是可見的,其他成員不可見。所以,在公有繼承時,派生類的物件可以訪...