C++ 嵌套类
来源:互联网 发布:淘宝可以朋友代付吗 编辑:程序博客网 时间:2024/06/05 08:59
C++中,可以将类声明放在另一个类中,在另一个类中声明的类被称为嵌套类
包含类的成员函数可以创建和使用嵌套类的对象,而仅当声明位于公有部分,才能在包含类的外面使用嵌套类,且必须使用作用域解析操作符
对类进行嵌套和包含的区别:
包含:意味着将类对象作为另一个类的成员
对类进行嵌套:并不创建类成员,而是定义了一种类型,该类型仅在包含嵌套类声明的类中有效
例子:
class Queue
{
private:
class Node //Node定义在Queue中的嵌套类,此处是在private私有部分定义,只有Queue类可以创建和使用Node类
{
public:
Item item;
Node *next;
Node(const Item &i):item(i),next(0){}; //此处在类声明中定义了构造函数
};
.......
};
bool Queue::enqueue(const Item & item)
{
.......
Node *add=new Node(item); //在Queue类的成员函数中创建和使用Node类
.......
}
假设想在方法文件中定义构造函数,则定义必须指出Node类是在Queue类中定义的,通过作用域解析操作符完成
Queue::Node::Node(const Item &i):item(i),next(0){}
1>作用域
嵌套类的声明位置决定了嵌套类的作用域,决定了程序的哪些部分可以创建这种类的对象
嵌套类的作用域为包含它的类,若在public部分声明,在外部使用它时,必须使用类限定符
例如:
class Team
{
public:
class Coach{...};
......
};
要在Team外面创建Coach对象,应:
Team::Coach forhire;
2>访问控制
类可见后,起决定作用的是访问控制
- 【C/C++】嵌套类
- C++_嵌套类
- C++ 嵌套类
- C++_Primer_chapter18 4.嵌套类
- C/C++ 局部类和嵌套类
- c++-嵌套类与局部类
- c+中嵌套类的访问权限
- 继承与嵌套类(C#)
- C++(11):友元、嵌套类
- C语言嵌套注释
- C 语言 嵌套 汇编
- <c:forEach >嵌套
- C编译器 嵌套注释
- 函数嵌套(c++)
- c:foreach 嵌套问题
- c:forEach 嵌套循环
- Java -嵌套c lass
- C语言递归嵌套
- 网络学习提要,真是太全了
- Help Johnny解题报告
- TI 28335 XINT
- 搭建Ubuntu下基于Eclipse的php开发环境
- PMP备考经验分享
- C++ 嵌套类
- 2013年工作中遇到的20个问题:101-120
- 使用CXF生成客户端
- PHP中 getenv()函数 (环境变量)
- 数据库三大范式
- Java之线程安全的单例模式
- Java基础知识_网络编程
- 一些硬件相关的概念
- ubuntu下面ngnix的安装配置