18.3.3. Защищенное наследование

We use cookies. Read the Privacy and Cookie Policy

18.3.3. Защищенное наследование

Третья форма наследования – это защищенное наследование. В таком случае все открытые члены базового класса становятся в производном классе защищенными, т.е. доступными из его дальнейших наследников, но не из любого места программы вне иерархии классов. Например, если бы нужно было унаследовать PeekbackStack от Stack, то закрытое наследование

// увы: при этом не поддерживается дальнейшее наследование

// PeekbackStack: все члены IntArray теперь закрыты

class Stack : private IntArray { ... }

было бы чересчур ограничительным, поскольку закрытие членов IntArray в классе Stack делает невозможным их последующее наследование. Для того чтобы поддержать наследование вида:

class PeekbackStack : public Stack { ... };

класс Stack должен наследовать IntArray защищенно:

class Stack : protected IntArray { ... };