C 中公有繼承 保護繼承 私有繼承的區別

2021-09-27 11:28:32 字數 1267 閱讀 7333

前言:我在這道題上吃了兩次虧,第一次是在聯影的面試上,第二次是在尚泰的面試上。要注意的是所有制繼承影響的子類的成員,和子類的物件。

公有繼承時基類中各成員屬性保持不變,基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的物件只能訪問基類中的public成員。

私有繼承時基類中各成員屬性均變為private,並且基類中private成員被隱藏。派生類的成員也只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的物件不能訪問基類中的任何的成員。

保護繼承時基類中各成員屬性均變為protected,並且基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的物件不能訪問基類中的任何的成員。

//公有繼承                      物件訪問    成員訪問

public

-->

public y y

protected

-->

protected n y

private

-->

private n n

//保護繼承 物件訪問 成員訪問

public

-->

protected n y

protected

-->

protected n y

private

-->

protected n n

//私有繼承 物件訪問 成員訪問

public

-->

private n y

protected

-->

private n y

private

-->

private n n

注意:保護繼承躲在多繼承的例子中使用。

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

公有繼承時基類中各成員屬性保持不變,基類中private成員被隱藏。派生類的成員只能訪問基類中的public protected成員,而不能訪問private成員 派生類的物件只能訪問基類中的public成員。私有繼承時基類中各成員屬性均變為private,並且基類中private成員被隱藏。派生類...

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

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

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

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