私有(private):訪問權限最低;只能是該類內部函數互相調用,派生類、外部函數都不能訪問。
保護(protect):訪問權限中間;該類內部函數、派生類都能訪問,外部類、外部函數不能訪問
我們這樣來記會更加容易一些,在繼承時:
1、不管採用哪種形式(public, protected或private),基類中的私有成員都不可以被繼承;如果非要在派生類中使用基類的私有成員,可以有兩種方法:一是使用屬性,二是使用友元類或友元函數。
2、如果採用public形式,則基類除了私有成員的其它所有都被原樣的繼承到派生類中;即在基類中是public的,在派生類中還是public的,在基類中是protected的,在派生類中還是protected的。
3、如果採用protected形式,則基類中除了私有成員的其它說有都被以protected的形式繼承到派生類中。
C++中的繼承方式有:
public、private、protected三種(它們直接影響到派生類的成員、及其對象對基類成員訪問的規則)。
(1)public(公有繼承):繼承時保持基類中各成員屬性不變,並且基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的對象只能訪問基類中的public成員。
(2)private(私有繼承):繼承時基類中各成員屬性均變爲private,並且基類中private成員被隱藏。派生類的成員也只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的對象不能訪問基類中的任何的成員。
(3)protected(保護性繼承):繼承時基類中各成員屬性均變爲protected,並且基類中private成員被隱藏。派生類的成員只能訪問基類中的public/protected成員,而不能訪問private成員;派生類的對象不能訪問基類中的任何的成員。