2010-10-19 45 views
4

我有,我有包裝的一些遺留代碼,我也碰到過這樣的聲明:C++的默認繼承訪問說明符?

class Foo : Bar 
{ 
    // ... 
}; 

這似乎下GCC編譯。我知道這很糟糕,但我無法改變它。我的問題是,如果沒有繼承訪問說明符存在,C++編譯器如何處理它?

+3

其實,我想說,這是*不*壞。我會冗餘地指定訪問說明符不好。 – 2010-10-19 03:16:50

+0

[Default class inheritance access]的可能重複(http://stackoverflow.com/questions/3811424/default-class-inheritance-access) – 2010-10-19 12:40:11

回答

8

順便說一句,它不被稱爲訪問修飾符。這就是所謂的訪問指示符

$ 11.2/2 - 「在沒有 訪問說明符爲基類的,當派生 類與類密鑰 struct和私人定義假定 公共是在 類用類關鍵字 類定義的情況下被假定的。「

在你的背景下,「酒吧」是一個私人的基類的「富」

1

這是private

9

對於課程,默認爲private

對於結構體,默認值爲public