A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/cpp/nested-classes-in-c/ below:

Nested Classes in C++ - GeeksforGeeks

Nested Classes in C++

Last Updated : 23 Jul, 2025

A nested class is a class which is declared in another enclosing class. A nested class is a member and as such has the same access rights as any other member

. The members of an enclosing class have no special access to members of a nested class; the usual access rules shall be obeyed. For example, program 1 compiles without any error and program 2 fails in compilation.

Program 1 CPP
#include<iostream>

using namespace std;

 /* start of Enclosing class declaration */  
class Enclosing {      
   private:   
       int x;
   
   /* start of Nested class declaration */  
   class Nested {
      int y;   
      void NestedFun(Enclosing *e) {
        cout<<e->x;  // works fine: nested class can access 
                     // private members of Enclosing class
      }       
   }; // declaration Nested class ends here
}; // declaration Enclosing class ends here

int main()
{     

}

Program 2 CPP
#include<iostream>

using namespace std;

 /* start of Enclosing class declaration */  
class Enclosing {      
      
   int x;
   
   /* start of Nested class declaration */  
   class Nested {
      int y;   
   }; // declaration Nested class ends here

   void EnclosingFun(Nested *n) {
        cout<<n->y;  // Compiler Error: y is private in Nested
   }      
}; // declaration Enclosing class ends here

int main()
{ 
   
}

References:

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1905.pdf

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4