Как можно объявить классы на C++ public
, private
, или protected
?Классы C++ (общедоступные, частные и защищенные)
ответ
В C++ нет понятия целого класса, имеющий спецификатор доступа таким образом, что есть в Java или C#. Если кусок кода имеет видимость класса, он может ссылаться на имя этого класса и манипулировать им. Тем не менее, на это есть несколько ограничений. Просто потому, что вы можете ссылаться на класс, это не значит, что вы можете его создать, например, поскольку конструктор может быть помечен как частный. Аналогично, если класс является вложенным классом, объявленным в частном или защищенном разделе другого класса, класс не будет доступен вне этого класса и его друзей.
Это зависит от того, имеете ли вы значение членов или наследование. У вас не может быть '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
К гнездованию один класс внутри другого:
class A
{
public:
class B {};
protected:
class C {};
private:
class D {};
};
Вы можете реализовать «частные классы», просто не публикуя свой интерфейс для клиентов.
Я не знаю, как создать «защищенные классы».
- 1. Частные и защищенные участники: C++
- 2. C++ общедоступные и частные классы, с движением экрана?
- 3. Частные/общедоступные переменные в C#
- 4. Частные и общедоступные объявления в C#
- 5. Наследование C# частные/защищенные члены
- 6. Частные и защищенные методы в Objective-C
- 7. Частные и общедоступные пакеты модулей?
- 8. Как реализовать общедоступные, частные и защищенные ключевые слова на языке c?
- 9. Частные/общедоступные переменные Javascript
- 10. частные или защищенные переменные?
- 11. общественности, защищенные, частные
- 12. Частные и общедоступные методы и проверяемый код
- 13. Частные/Защищенные сеттеры с F #
- 14. Частные классы и uml
- 15. Inlining частные и защищенные виртуальные вызовы функций
- 16. Частные/общедоступные модификаторы с TypScript и eslint
- 17. Частные и общедоступные данные в ведро S3
- 18. Частные и общедоступные методы в объектах RequireJS
- 19. htaccess - фильтровать общедоступные и частные запросы
- 20. Стеки и объекты (общедоступные классы)
- 21. частные и защищенные поля neo4j-php-client
- 22. C++, используя частные и общедоступные макросы, внутри класса
- 23. как компилятор отличает частные и общедоступные данные на C++?
- 24. защищенные и частные переменные-члены в наследовании C++
- 25. Как защитить Java частные, пакетные и защищенные переменные?
- 26. охраняемые/общедоступные Внутренние классы
- 27. Недопустимые общедоступные классы
- 28. Частные и общедоступные методы и переменные в JavaScript
- 29. Защищенные классы scala?
- 30. Защищенные классы в .NET
Как и в, вы хотите, чтобы кто-то не мог использовать класс? Класс может быть подклассифицирован: т. Е. Класс A {private: class B {}; }; –
Это может быть полезно для вас: http://www.linuxquestions.org/questions/programming-9/public-private-protected-c-215399/#post1098220 – KyleWpppd
Почему есть близкое голосование за этот вопрос? Это кажется вполне разумным вопросом. – templatetypedef