- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
定义命名空间 C++中,有两种形式的命名空间:有名的命名空间和无名的命名空间。这两种命名空间的定义格式分别如下。 有名的命名空间: namespace 命名空间名 { 声明序列 } 无名的命名空间: namespace { 声明序列 } 【范例16-1】定义命名空间。该范例定义了一个命名空间Outer,其中包括变量、成员函数、子命名空间等 使用命名空间 标准C++给出了几种引用命名空间内变量和函数的方法,它们分别是使用作用域运算符、using指令和using声明 使用作用域运算符引用成员 :前面讲解过作用域运算符::,比如多个类中定义了相同的成员函数时,需要通过作用域运算符指明是属于哪个类的,而使用作用域运算符引用命名空间中的成员也是如此。 使用using指令:可以使用标准C++的using编译指令来简化命名空间中的名称的使用。格式为: using namespace 命名空间名[::命名空间名……] 使用using声明 :using 命名空间名::[命名空间名::…]成员名; this指针 简单地说,this指针是一个特殊的指针。当类的某个非静态的成员函数在执行时,this指针指向类的一个对象,且这个对象的某个成员函数正在被调用,并作为隐含参数传递给每一个被声明的成员函数。 在实际程序中,this指针用得最多的地方是用做返回值。使用this指针可以允许成员函数返回调用对象给调用者。在第13章运算符重载中,this指针常作为返回值。 【范例16-10】this指针的使用。该范例使用了this指针,其作为返回值 本章主要介绍了C++中命名空间的相关内容,主要包括命名空间的概念、定义,以及在具体程序中引用命名空间成员的几种方法,并将这些方法做了比较,这是本章的重点和难点。此外,本章还就作用域做了详细介绍,作用域包括变量变量的作用域、函数作用域和类作用域,作用域主要分为全局作用域、局部作用域和文件作用域,它们之间可以进行嵌套。最后,本章就C++中的静态成员,包含静态数据成员和静态成员函数做了讲解。 习题 3.下列程序的输出结果是? #includeiostream.h void f() { static int i=15; i++; couti=iendl; } void main() { for(int k=0;k2;k++) f(); } 1-* 第16章 命 名 空 间 杨章伟 e-mail:yang505412@163.com 课程内容安排 命名空间 使用命名空间 类的作用域 作用域 this指针 小结 习题 什么是命名空间 简单来说,命名空间是C++的一种机制,用来把单个标识符下存在大量有逻辑联系的程序实体组合到一起,此标识符作为此组群的名字。 命名空间事实上就是一个含有许多标识符的空间,其中包含了许多标识符的定义,在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等。为了避免在大规模程序的设计中这些标识符的命名发生冲突,C++标准引入了命名空间的概念,其使用关键字namespace来定义。 简单地说,命名空间是为解决C++中的变量、函数的命名冲突而服务的。解决的办法就是将变量定义在一个不同名字的命名空间中。 using指令与using声明的比较 通过上述using指令和using声明的学习,读者可以看到,using编译指令和using声明都可以简化对命名空间中名称的访问。 using指令使用后,可以一劳永逸,它对整个命名空间的所有成员都有效,非常方便。而using声明,则必须对命名空间的不同成员名称逐个地去声明,非常麻烦。 但是,一般来说,使用using声明会更安全。因为,using声明只会导入指定的名称,如果该名称与局部名称发生冲突,编译器会报错。而using指令导入整个命名空间中的所有成员的名称,包括那些可能根本用不到的名称,如果其中有名称与局部名称发生冲突,则编译器不会发出任何警告信息,而只是用局部名称去自动覆盖命名空间中的同名成员。 类的作用域 类的作用域简称类域,其是指在类的定义中由一对花括号所括起来的部分。每一个类都具有该类的类域,该类的成员均在该类所属的类域中。 简单来说,C++中的静态成员是指在类中通过关键字static说明的成员,其主要包括静态数据成员和静态成员函数。静态成员主要用于解决同一个类的不同对象之间数据和函数共享的问题,用一个类的不同对象的静态成员均使用同一个内存空间。 静态数据成员是指类中用关键字static说明的那些数据成员。它是类的数据成员的特例,每个类只有一个静态数据成员的拷贝,从而实现同类对象之间的数据共享。 作用域 前面提到的作用域是指类或变量的作用范围。事实上
文档评论(0)