-
功能性质
- 对类进行嵌套不创建类成员,而而是定义了一种类型(因此定义对象时两者没有构造关系)
- 为了帮助实现另一个类并避免名称冲突
-
访问权限:
类声明的位置决定了类的作用域或可见性。类可见后,访问控制规则(公有、私有、保护、友元)将决定程序对嵌套类成员的访问权限。- 嵌套类的声明位置决定了嵌套类的作用域,即决定了程序的哪些部分可以创建这种类的对象
- 若在一个类A的私有部分声明,则只有A可见,程序的其他部分不知道这个嵌套类的存在。即使是A的派生类也不可见。
- 若在一个类A的保护部分声明,则A可见,A的派生类可见(可不用使用限定符),其他所有部分不可见。
- 若在一个类A的共有部分声明,则程序所有地方都可见。但注意外部世界使用嵌套类时必须使用类限定符。
- 嵌套类的访问控制与其他类一样
- 嵌套类的声明位置决定了嵌套类的作用域,即决定了程序的哪些部分可以创建这种类的对象
-
模板类里的嵌套类
- 模板类在实例化时,实例化出来的类都是独立的类,所以里面的嵌套类之间不会产生名称冲突
- 如
template<class T> class A { public: A() {}; ~A {}; private: class AA { AA() {}; ~AA() {}; }; AA aa; T t; }; A<int> a1; A<double> a2;
CPP——嵌套类
最新推荐文章于 2022-09-20 23:46:18 发布