2017-09-25 71 views
1

我正在查看http://www.geeksforgeeks.org/inheritance-in-c/中的繼承概念。我對作者寫的幾句話感到困惑。在一個地方作者說訪問C++中的類名稱修飾符

如果我們從公共基類派生一個子類。然後公開基類的成員將在派生類中公開...... .....

這意味着我們有類似於C++中的公共類嗎?同樣在文章下面的表格中,還有一個公共/受保護類的概念。 enter image description here

我看了幾個其他SO帖子(Use of "Public" in a derived class declaration?),發現沒有提及公共,私人或受保護的類本身。 https://stackoverflow.com/questions/4792614/making-classes-public-to-other-classes-in-c的帖子公開,但通過頭文件的方式。

+0

您鏈接的文章顯示了它所說的內容:'class Child:public Parent' – chris

+0

與問題無關,但它讓我困擾,私人專欄在中間,公共行是最後一個。 –

+1

C++中沒有公共類或私有類。但是,公共或私人*基類有這樣的事情。 – cdhowie

回答

3

Public,ProtectedPrivate關鍵字是C++中的可見性標籤。在c++(如Java)中沒有public,protectedprivate類別類型。這三個關鍵字也用於完全不同的上下文來指定可見性繼承模型。

下面給出的表格列出了組件聲明和繼承模型的所有可能組合,當子類被完全定義時,這些組合提供了對組件的結果訪問。

enter image description here

它讀取以下面的方式(先來看看第一行):如果一個組件被聲明爲公共的和它的類繼承的 公衆產生的訪問是

上市。

看一看下面的例子:

class Super { 
    private:  int x; 
    protected: int y; 
    public:  int z; 
}; 
class Sub : protected Super {}; 

變量Y中的所得的訪問,Z類子被保護並且變量x是沒有的。

注:

缺乏一個修正收益率private的。