Подтвердить что ты не робот

Классы С++ (общедоступные, частные и защищенные)

Как можно объявить классы в С++ public, private или protected?

4b9b3361

Ответ 1

В С++ нет понятия целого класса, имеющего спецификатор доступа, который существует на Java или С#. Если кусок кода имеет видимость класса, он может ссылаться на имя этого класса и манипулировать им. Тем не менее, на это есть несколько ограничений. Просто потому, что вы можете ссылаться на класс, это не значит, что вы можете его создать, например, поскольку конструктор может быть помечен как частный. Аналогично, если класс является вложенным классом, объявленным в частном или защищенном классе другого класса, тогда класс не будет доступен вне этого класса и его друзей.

Ответ 2

Вставка одного класса внутри другого:

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

Ответ 3

Это зависит, если вы имеете в виду членов или наследование. Вы не можете иметь '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

Ответ 4

Вы можете реализовать "частные классы", просто не публикуя свой интерфейс для клиентов.

Я не знаю, как создать "защищенные классы".