Demonstration

5. Nested classes

class a_class
{
	public:
		class a_nested_class
		{
			int i;
		};

		class another_nested_class: public a_nested_class
		{
		};
};

a_class::a_nested_class anc;

{
  "id": "namespace-0",
  "classes":
  [
    {
      "id": "class-0",
      "name": "a_class",
      "classes":
      [
        {
          "id": "member-class-0",
          "name": "a_nested_class",
          "access": "public",
          "destructor":
          {
            "access": "public"
          },
          "variables":
          [
            {
              "id": "member-variable-0",
              "name": "i",
              "access": "private",
              "type":
              {
                "fundamental type": "int"
              }
            }
          ]
        },
        {
          "id": "member-class-1",
          "name": "another_nested_class",
          "access": "public",
          "base classes":
          [
            {
              "member class id": "member-class-0",
              "access": "public"
            }
          ],
          "destructor":
          {
            "access": "public"
          }
        }
      ],
      "destructor":
      {
        "access": "public"
      }
    }
  ],
  "variables":
  [
    {
      "id": "variable-0",
      "name": "anc",
      "type":
      {
        "member class": "member-class-0"
      }
    }
  ]
}