Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can you have protected nested classes in C++?

I have a class that only really ever needed by classes in a certain class hierarchy. I wanted to know if it is possible to nest the class in the highest class's protected section and have all the other classes automatically inherit it?

like image 444
Chad Avatar asked Nov 21 '08 01:11

Chad


1 Answers

"Inherit" is the wrong word to use since it has a very specific definition in C++ which you don't mean, but yes you can do that. This is legal:

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

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

And code that is not in A or something that derives from A cannot access or instantiate A::Nested.

like image 192
Tyler McHenry Avatar answered Sep 30 '22 04:09

Tyler McHenry