在C++中,繼承的格式定義爲:
class 派生類類名 : <訪問限定符> 基類類名1 , <訪問限定符> 基類類名2 ......{
//派生類特有的成員
};
訪問限定符有3種:public 、protected 、 private。
如果爲private , 表示私有繼承,即基類的所有公有或者保護成員成爲派生類的私有成員 ;
如果爲protected ,即基類的所有公有成員爲派生類的保護成員,私有成員則依然是私有成員 ;
如果爲public ,表示公有繼承,基類的成員限定不變。
默認情況下是私有繼承 。
訪問限定的總結如下:
·公有繼承時,基類中的公有成員和保護成員可被派生類中的成員函數訪問,基類中僅有公有成員纔可唄派生類的對象訪問。
·保護繼承時,將使基類中的公有成員和保護成員成爲派生類的保護成員;這使得派生類的對象不能訪問基類中的任何成員,而派生類的成員函數可以訪問基類中的公有成員和保護成員。
·私有繼承時,派生類的成員函數可訪問基類中的公有成員和保護成員;派生類的對象不能訪問基類中的任何成員。
不過,通過訪問聲明,有時候可以繞過這個限定,如下面的例子所示:
對於積累的靜態成員而言,不管哪種繼承方式都不影響對靜態成員的訪問。不過,再訪問時需要用“類名 :: 成員”的方式顯示說明,例如: