C ++类(公共,私有和受保护)

时间:2011-01-31 19:56:57

标签: c++ private public protected access-modifiers

如何将C ++中的类声明为publicprivateprotected

4 个答案:

答案 0 :(得分:42)

在C ++中,没有一个整体类具有访问说明符的概念,就像Java或C#中的那样。如果一段代码具有类的可见性,它可以引用该类的名称并对其进行操作。也就是说,对此有一些限制。仅仅因为你可以引用一个类并不意味着你可以实例化它,例如,因为构造函数可能被标记为私有。类似地,如果该类是在另一个类的私有或受保护部分中声明的嵌套类,则该类将无法从该类及其朋友外部访问。

答案 1 :(得分:27)

将一个类嵌套在另一个类中:

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

答案 2 :(得分:6)

这取决于你是指成员还是继承。你不能拥有'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

答案 3 :(得分:3)

您可以通过简单地不将其接口发布到客户端来实现“私有类”。

我知道无法创建“受保护的类”。