Можно ли защитить вложенные классы в C++?
Вопрос
У меня есть класс, который действительно нужен только классам в определенной иерархии классов.Я хотел знать, можно ли вложить класс в защищенный раздел самого высокого класса и автоматически наследовать его всем остальным классам?
Решение
«Наследовать» — неправильное слово, поскольку оно имеет очень конкретное определение в C++, которое вы не имеете в виду, но да, вы можете это сделать.Это законно:
class A {
protected:
class Nested { };
};
class B : public A {
private:
Nested n;
};
И код, который не находится в A или что-то, производное от A, не может получить доступ или создать экземпляр A::Nested.
Не связан с StackOverflow