#include <iostream>
using namespace std;

class X {                                                         //(A)

    class Y{                                                      //(B)
        int m;
    public:
        Y( int mm ) { m = mm; }                                   //(C)
        void printY(){ cout << "m of nested class object: " 
                            << m << endl; };                      //(D)
    };

    Y* yptr;                                                      //(E)
public:
    X() { yptr = new Y( 100 ); }                                  //(F)
    Y* get_yptr(){ return yptr; }                                 //(G)
};


int main() {                           
    X x;                                                          //(H)
    x.get_yptr()->printY();                                       //(I)
    return 0;
}