2011-04-16 156 views
1

我已閱讀此question, 我仍然懷疑我的繼承概念。我試圖解決家庭作業的任務,但我認爲我仍然沒有獲得訪問級別。我有以下在我腦海裏的問題,需要繼承幫助

保護公共 訪問符一樣嗎? (我沒有找到一個 差)

分配被附在下面,請大家幫我,如果它是不正確。 enter image description here enter image description here

回答

3

不同的是,受保護的成員只能看到/接觸到子類。

class A { 
public: 
    int a; // anything can access this member. 
private: 
    int b; // only A can access this member. 
protected: 
    int c; // A and every other class that inherits this member can access it. 
}; 
0

你似乎忘記了最簡單,最重要的方面:在獨立(非成員)函數從一個不相關的類成員的可訪問性/。 Public會員可以從課外和班級層級訪問,私有和受保護的不能。

如果你的意思公共 VS 保護繼承,那麼,答案是有你的圖表。

1

不,它們不一樣。

public表示其他任何類都可以訪問該成員。

私人意味着它只能通過它自己的類訪問

保護意味着它是由自己的類訪問,並從類

例推導的所有類:

class 1 { 
    public void do1() { } 
    private void do3() { } 
    protected void do2 { } 

    1() 
    { 
     public void do1() { } // ok 
     private void do2() { } // ok 
     protected void do3 { } // ok 
    } 
} 

class 2 { 
    2() 
    { 
     1.do1() { } // ok 
     1.do2() { } // ERROR 
     1.do3 { } // ERROR 
    } 
} 

class 3 inherits class 1 { 
    3() 
    { 
     do1() { } // ok 
     do2() { } // ERROR 
     do3 { } // ok = this class can access the the protected member of it's base class 
    } 
} 
0

保護成員只能由基類和從基類派生的類訪問基類。

**私人成員**只能由自己的類接受,不能被派生類接受。

**公共成員**可以被包括派生類的任何類訪問。

請檢查this問題