Можете ли вы защитить вложенные классы в C ++? - PullRequest
5 голосов
/ 21 ноября 2008

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

1 Ответ

8 голосов
/ 21 ноября 2008

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...