c++ primer plus 第15章友,异常和其他:嵌套类15.2

c++ primer plus 第15章友,异常和其他:嵌套类15.2

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:c++ primer plus 第15章友,异常和其他:嵌套类15.2


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


嵌套类15.2

在 C++中,可以将类声明放在另一个类中。在另一个类中声明的类被称为嵌套类(nested class),它通过提供新的类型类作用域来避免名称混乱。包含类的成员函数可以创建和使用被嵌套类的对象:而仅当声明位于公有部分,才能在包含类的外面使用嵌套类,而且必须使用作用域解析运算符(然而,旧版本的 C++不允许嵌套类或无法完全实现这种概念)。
对类进行嵌套与包含并不同。包含意味着将类对象作为另一个类的成员,而对类进行嵌套不创建类成
员,而是定义了一种类型,该类型仅在包含嵌套类声明的类中有效。对类进行嵌套通常是为了帮助实现另一个类,并避免名称冲突。Queue 类示例(第 12 章的程序清单 12.8)嵌套了结构定义,从而实现了一种变相的嵌套类:

class ueue
private :
//class scope definitions//Node is a nested structure definition local to this class
struct Node{
   
   Item item;struct Node *next;}
};
 

由于结构是一种其成员在默认情况下为公有的类,所以 Node 实际上是一个嵌套类,但该定义并没有充分利用类的功能。具体地说,它没有显式构造函数,下面进行补救。
首先,找到 Queue 示例中创建 Node对象的位置。从类声明(程序清单 11.10)和方法定义(程序清单 12.11)可知,唯一创建了 Node 对象的地方是enqueue()方法:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值