CPP——嵌套类

  1. 功能性质

    • 对类进行嵌套不创建类成员,而而是定义了一种类型(因此定义对象时两者没有构造关系)
    • 为了帮助实现另一个类并避免名称冲突
  2. 访问权限
    类声明的位置决定了类的作用域或可见性。类可见后,访问控制规则(公有、私有、保护、友元)将决定程序对嵌套类成员的访问权限。

    • 嵌套类的声明位置决定了嵌套类的作用域,即决定了程序的哪些部分可以创建这种类的对象
      • 若在一个类A的私有部分声明,则只有A可见,程序的其他部分不知道这个嵌套类的存在。即使是A的派生类也不可见。
      • 若在一个类A的保护部分声明,则A可见,A的派生类可见(可不用使用限定符),其他所有部分不可见。
      • 若在一个类A的共有部分声明,则程序所有地方都可见。但注意外部世界使用嵌套类时必须使用类限定符。
    • 嵌套类的访问控制与其他类一样
  3. 模板类里的嵌套类

    • 模板类在实例化时,实例化出来的类都是独立的类,所以里面的嵌套类之间不会产生名称冲突
    	template<class T>
    	class A
    	{
    	public:
    	   A() {};
    	   ~A {};
    	private:
    	   class AA
    	   {
    	       AA() {};
    	       ~AA() {};
    	   };
    	   AA aa;
    	   T t;
    	};
    	A<int> a1;
    	A<double> a2;
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值