如何将C ++中的类声明为public
,private
或protected
?
答案 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)
您可以通过简单地不将其接口发布到客户端来实现“私有类”。
我知道无法创建“受保护的类”。