關於C 的private繼承問題

2021-06-20 05:35:03 字數 573 閱讀 1103

c++有三種繼承方式:公有繼承,私有繼承,保護繼承

這裡只對其中私有繼承做個知識筆記,以防忘記。

private:

關鍵字意味著除了該型別的建立者和類的內部成員函式之外,物件及子類都不能訪問。(這裡注意,即使該類的物件都不能直接訪問哦,只有通過物件的內部成員函式才可以訪問)

採用公用繼承方式時,基類的公用成員和保護成員在派生類中仍然保持其公用成員和保護成員的屬性,而基類的私有成員在派生類中並沒有成為派生類的私有成員,它仍然是基類的私有成員,只有基類的成員函式可以引用它,而不能被派生類的成員函式引用,因此就成為派生類中的不可訪問的成員。

當乙個類b私有繼承類a的時候,a中的公有成員和保護成員以及私有成員在b類中都是私有成員,所以導致b類的物件不能直接訪問a類中的任何成員,只有通過內部成員函式才可以訪問。

且看下面的乙個例子:

class a 

}class b:private a

}class c:public a

}int main()

該程式的錯誤很顯然了

關於private和繼承

被private修飾的方法和屬性,只能被本類呼叫,包括子類的其他類不可以直接呼叫這個被private修飾的方法和屬性。public class testprivateandbean class newone extends testprivateandbean 當父類中的屬性或方法被修飾為priva...

PHP中關於private許可權的繼承

a 如果父類當中的成員屬性為私有的,在子類當中沒有辦法使用,但是確被繼承了下來。b 如果在父類當中擁有公有的成員方法,該成員方法輸出私有的成員屬性,在子類當中可以繼承該方法,但該成員方法輸出父類私有成員的屬性一樣也會被繼承 有如下例子 這個會輸出bbbbbb class person class s...

關於繼承的問題

繼承,我這裡只說方法,繼承關心的是我從父類繼承來的東西有不是擁有的東西 簡單地說也就是能使用的東西 1。訪問修飾符為private的方法不能被繼承,而是被隱藏,在子類中可以寫乙個跟父類訪問修飾符為private方法一樣的方法,這裡不存在覆蓋問題,因為方法被隱藏,根本就沒有被繼承,所以不存在覆蓋問題,...