嵌套类

  在C++中,可以将类声明放在另一个类中,在另一个类中声明的类被称为嵌套类,它通过提供新的类型类作用域来避免名称混乱。包含类的成员函数可以创建和使用被嵌套类的对象;而仅当声明位于公有部分,才能在包含类的外面使用嵌套类,而且必须使用作用域解析运算符。
  对类进行嵌套和包含并不同,包含意味着将类对象作为另一个类的成员,而对类进行嵌套不创建类成员,而是定义一种类型,该类型仅在包含嵌套类声明的类中有效。

class Queue
{
    enum {Q_SIZE = 10};
private:
    struct Node {Item item; struct Node *next;};

    Node * front;
    Node * rear;
    int items;
    const int qsize;

public:
    Queue(int qs = Q_SIZE);
    ~Queue();
    bool isempty() const;
    bool isfull() const;
    int queuecount() const;
    bool enqueue(const Item &item);
    bool dequeue(Item &item);
};

Node实际上是一个嵌套类(结构是一种其成员在默认情况下为公有的类)

嵌套类的作用域和访问权限
嵌套类的声明位置决定了嵌套类的作用域,嵌套类的公有部分、保护部分和私有部分控制了对类成员的访问。
1.作用域
如果嵌套类是在另一个类的私有部分声明的,则只有后者知道它。
如果嵌套类是在另一个类的保护部分声明的,则它对于后者来说是可见的。
如果嵌套类是在另一个类的公有部分声明的,则允许后者、后者的派生类以及外部世界使用它。

2.访问控制
类可见后,起决定作用的将是访问控制。对嵌套类访问权的控制规则与对常规类相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值