嵌套类(嵌套类、结构和枚举的作用域特征——图)

嵌套类是声明在另一个类内部的类,用于管理类作用域,防止名称冲突。嵌套类的可见性和访问权限取决于其在包含类中的声明位置:私有部分只对包含类可见,保护部分对包含类及其派生类可见,公共部分对所有对象可见。类声明的位置并不影响访问控制,仍遵循公有、保护、私有和友元规则。模板中的嵌套类也需要遵循类似的原则。
摘要由CSDN通过智能技术生成

嵌套类

 

    在另一个类中声明的类被称为嵌套类(nested class),它通过提供新的类型类作用域来避免名称混乱。包含类的成员函数可以创建和使用被嵌套类的对象;而仅当声明位于公有部分,才能在包含类的外面使用嵌套类,而且必须使用作用域解析操作符。

 

class Queue
{
// class scope definitions
  // Node is a nested class definition local to this class
  class Node
  {
   public:
     Node():
  };
  ...
};

 

定义嵌套类的方法,必须指出Node类是在Queue类中定义的:
Queue::Node::Node(){...}

 

嵌套类和访问权限

 

1.作用域
    如果嵌套类是在另一个类的私有部分声明的,则只有后者知道它。比如上面的Node类就是声明在Queue类的私有部分(类的默认访问权限是私有),因此Queue成员可以使用Node对象和指向Node对象的指针,但是程序的其他部分甚至不知道Node类的存在。
    对于从Queue类派生而来的类,Node类也是不可见的,因为派生类不能直接访问基类的私有部分。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值