2011-01-31 181 views

回答

36

在C++中有一個具有一個訪問說明符,有路無一整類的概念在Java或C#中。如果一段代碼具有一個類的可見性,它可以引用該類的名稱並對其進行操作。這就是說,這有幾個限制。僅僅因爲你可以引用一個類並不意味着你可以實例化它,例如,因爲構造函數可能被標記爲私有。同樣,如果該類是在另一個類的私有或受保護的部分中聲明的嵌套類,那麼該類將無法在該類及其朋友之外訪問。

5

這取決於您是指成員還是繼承。你不能有這樣的'private class'

class Foo 
{ 
public: 
Foo() {} //public ctr 
protected: 
void Baz() //protected function 
private: 
void Bar() {} //private function 
} 

還是繼承:

class Foo : public Bar 
class Foo : protected Bar 
class Foo : private Bar 
22

通過嵌套內另一個類:

class A 
{ 
public: 
    class B {}; 
protected: 
    class C {}; 
private: 
    class D {}; 
}; 
4

您可以通過簡單地將它們的接口發佈到客戶端來實現「私人類」。

我知道沒有辦法創建「受保護的類」。

相關問題