13.1.10 嵌套类
一个类可以在另一个类中定义,这样的类被称为嵌套类。嵌套类是其外层类的一个成员。嵌套类的定义可以出现在其外层类的公有私有或保护区中。嵌套类的名字在其外层类域中是可见的,但是在其他类域名字空间中是不可见的。这意味着嵌套类的名字不会与外层域中声明的相同名字冲突。有两种嵌套类的方法。一种是直接在外层类中定义嵌套类,格式如下:
- class A
- {
- private :
- class B
- {
- public:
- ...
- }
- ...
- };
另一种是在类的外部定义嵌套类,格式如下:
- class A
- {
- private :
- class B;
- ...
- };
- class B
- {
- public:
- ...
- }
通常,将嵌套类的本身声明为private,嵌套类的数据成员和成员函数声明为public。这样做的好处是只有外层类的友元和外层类的成员可以访问嵌套类。
如果没有在嵌套类中定义构造函数,那么必须在全局域中定义嵌套类的构造函数。由于嵌套类的名字只有在外层类中才是可见的,所以要用外层类的名字限定修饰嵌套类名。例如嵌套类B的构造函数:
- A::B::B()
- {...}
【责任编辑:
云霞 TEL:(010)68476606】