Вопрос

У меня есть класс, который действительно нужен только классам в определенной иерархии классов.Я хотел знать, можно ли вложить класс в защищенный раздел самого высокого класса и автоматически наследовать его всем остальным классам?

Это было полезно?

Решение

«Наследовать» — неправильное слово, поскольку оно имеет очень конкретное определение в C++, которое вы не имеете в виду, но да, вы можете это сделать.Это законно:

 class A {
   protected:
   class Nested { };
 };

 class B : public A {
   private:
   Nested n;
 };

И код, который не находится в A или что-то, производное от A, не может получить доступ или создать экземпляр A::Nested.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top