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()方法:

最低0.47元/天 解锁文章
4101

被折叠的 条评论
为什么被折叠?



