Некоторые преимущества использования спецификатора protected в C++:
- Контроль доступа. 2 С помощью protected можно позволить использовать член класса внутри иерархии классов и запретить доступ к нему извне этой иерархии. 2
- Наследование прав доступа. 2 Когда элемент объявляется защищенным, можно наследовать права доступа: если у производного класса будут свои классы-наследники, то в них также можно обращаться к подобным членам базового класса. 5
- Защита реализации базового класса. 3 Защищённые члены доступны в классе, который их определяет, и в классах, наследуемых от этого класса. 3
- Помощь в обслуживании кода. 3 Как правило, защищённые функции используются, когда нужно сохранить модульность общедоступных функций или исключить повторяющийся код. 3
Таким образом, спецификатор protected позволяет определять уровень доступа к переменным и функциям базового класса, которые должны быть доступны в производных классах, но не извне. 5