C++内部类

C++支持在类中定义内部类,内部类是类的一个组成部分,也称为嵌套类。

一、内部类定义

在类中像成员变量一样定义内部类:

class Outer {

  class Inner {
    // ...
  };

  Inner inner;
};

二、内部类访问

外部类可以直接访问内部类成员,内部类可以访问外部类成员。

三、仅外部类访问

内部类对外不可见,只有外部类可以使用。

class Outer {

  class Inner {};

  void func() {
    Inner inner; // 正确,外部类可以访问 
  }

};

Outer::Inner inner; // 错误,外部不可访问

四、与普通成员区别

内部类参与外部类的作用域,普通成员没有这个特性。

五、继承访问权限

内部类继承外部类的访问权限。

六、应用场景

内部类常用于实现一些辅助类,外界不需要访问。

七、实现细节隐藏

内部类可以隐藏实现细节。

内部类是C++类的一个扩展,可以用来对外隐藏实现细节,也便于逻辑分组。