一个类定义在另一个类的内部,则前者称为嵌套类或者是嵌套类型。嵌套类相当于外层类的一个类型成员。
    可以类比命名空间的嵌套。
    嵌套类是一个独立的类,与外层类基本没什么关系。外层类的对象和嵌套类的对象是相互独立的。在嵌套类的对象中不包含任何外层类定义的成员;类似的,在外层类的对象中也不包含任何嵌套类定义的成员。
    嵌套类的名字在外层类作用域中是可见的 , 在外层类作用域之外不可见。和其他嵌套的名字一样,嵌套类的名字不会和别的作用域中的同一个名字冲突。
    嵌套类中成员的种类与非嵌套类是一样的。和其他类类似,嵌套类也使用访问限定符来控制外界对其成员的访问权限。外层类对嵌套类的成员没有特殊的访问权限,同样,嵌套类对外层类的成员 也没有特殊的访问权限。
    嵌套类可以直接使用外层类的成员,无须对该成员的名字进行限定。

    1. class Fucker{
    2. public:
    3. class InnerFucker; //嵌套类的前置声明,后面去定义
    4. public:
    5. int shit;
    6. };
    7. //可以在外部定义嵌套类
    8. class Fucker::InnerFucker{ //嵌套类的定义。
    9. public:
    10. static int stati_mem;
    11. };
    12. //在外部定义嵌套类的成员函数。
    13. Fucker::InnerFucker::InnerFucker(){ //嵌套类成员的定义(构造函数的定义)
    14. }
    15. //在外部定义嵌套类的静态成员
    16. int Fucker::InnerFucker::static_mem = 1024;