1. 公有繼承(public) 公有繼承的特點(diǎn)是基類(lèi)的公有成員和保護(hù)成員作為派生類(lèi)的成員時(shí),它們都保持原有的狀態(tài),而基類(lèi)的私有成員仍然是私有的。 2. 私有繼承(private) 私有繼承的特點(diǎn)是基類(lèi)的公有成員和保護(hù)成員都作為派生類(lèi)的私有成員,并且不能被這個(gè)派生類(lèi)的子類(lèi)所訪問(wèn)。 3. 保護(hù)繼承(protected) 保護(hù)繼承的特點(diǎn)是基類(lèi)的所有公有成員和保護(hù)成員都成為派生類(lèi)的保護(hù)成員,并且只能被它的派生類(lèi)成員函數(shù)或友元訪問(wèn),基類(lèi)的私有成員仍然是私有的。 為了進(jìn)一步理解三種不同的繼承方式在其成員的可見(jiàn)性方面的區(qū)別,下面從三種不同角度進(jìn)行討論。 對(duì)于公有繼承方式: (1) 基類(lèi)成員對(duì)其對(duì)象的可見(jiàn)性: 公有成員可見(jiàn),其他不可見(jiàn)。這里保護(hù)成員同于私有成員。 (2) 基類(lèi)成員對(duì)派生類(lèi)的可見(jiàn)性: 公有成員和保護(hù)成員可見(jiàn),而私有成員不可見(jiàn)。這里保護(hù)成員同于公有成員。 (3) 基類(lèi)成員對(duì)派生類(lèi)對(duì)象的可見(jiàn)性: 公有成員可見(jiàn),其他成員不可見(jiàn)。 所以,在公有繼承時(shí),派生類(lèi)的對(duì)象可以訪問(wèn)基類(lèi)中的公有成員;派生類(lèi)的成員函數(shù)可以訪問(wèn)基類(lèi)中的公有成員和保護(hù)成員。這里,一定要區(qū)分清楚派生類(lèi)的對(duì)象和派生類(lèi)中的成員函數(shù)對(duì)基類(lèi)的訪問(wèn)是不同的。 對(duì)于私有繼承方式: (1) 基類(lèi)成員對(duì)其對(duì)象的可見(jiàn)性: 公有成員可見(jiàn),其他成員不可見(jiàn)。 (2) 基類(lèi)成員對(duì)派生類(lèi)的可見(jiàn)性: 公有成員和保護(hù)成員是可見(jiàn)的,而私有成員是不可見(jiàn)的。 (3) 基類(lèi)成員對(duì)派生類(lèi)對(duì)象的可見(jiàn)性: 所有成員都是不可見(jiàn)的。 所以,在私有繼承時(shí),基類(lèi)的成員只能由直接派生類(lèi)訪問(wèn),而無(wú)法再往下繼承。 對(duì)于保護(hù)繼承方式: 這種繼承方式與私有繼承方式的情況相同。兩者的區(qū)別僅在于對(duì)派生類(lèi)的成員而言,對(duì)基類(lèi)成員有不同的可見(jiàn)性。 上述所說(shuō)的可見(jiàn)性也就是可訪問(wèn)性。關(guān)于可訪問(wèn)性還有另的一種說(shuō)法。這種規(guī)則中,稱(chēng)派生類(lèi)的對(duì)象對(duì)基類(lèi)訪問(wèn)為水平訪問(wèn),稱(chēng)派生類(lèi)的派生類(lèi)對(duì)基類(lèi)的訪問(wèn)為垂直訪問(wèn)。 一般規(guī)則如下: 公有繼承時(shí),水平訪問(wèn)和垂直訪問(wèn)對(duì)基類(lèi)中的公有成員不受限制; 私有繼承時(shí),水平訪問(wèn)和垂直訪問(wèn)對(duì)基類(lèi)中的公有成員也不能訪問(wèn); 保護(hù)繼承時(shí),對(duì)于垂直訪問(wèn)同于公有繼承,對(duì)于水平訪問(wèn)同于私有繼承。 對(duì)于基類(lèi)中的私有成員,只能被基類(lèi)中的成員函數(shù)和友元函數(shù)所訪問(wèn),不能被其他的函數(shù)訪問(wèn)。
|