c类、名称空间、内部空间的作用域(笔记总结).docx
《c类、名称空间、内部空间的作用域(笔记总结).docx》由会员分享,可在线阅读,更多相关《c类、名称空间、内部空间的作用域(笔记总结).docx(4页珍藏版)》请在装配图网上搜索。
名称空间作用域 名称空间中实体的作用域是全局的(相对于名称空间是全局的),并不意味着其可见域也是全局的,如果不使用作用域限定符::和using机制,抛开名称空间嵌套和内部屏蔽的情况,实体的可见域是从实体创建到该名称空间结束(如果有名称空间的嵌套,则内部名称空间中的实体可能会屏蔽外部名称空间中的实体,这在稍后会讲到),在名称空间外,该实体是不可见的. 在某个名称空间中定义或创建的程序实体,如果要在其他名称空间中或外部函数中访问,必须使用作用域限定符::或使用using声明机制来使实体可见 名称空间可嵌套命名,局部优先原则。 至于using声明语句将该实体的可见域扩展到什么程度,这取决于using语句的书写位置,换言之,这取决于using语句的可见域。写到另一个名称空间中,则只在这个名称空间中进行扩展。写到外部空间则在外部空间扩展。 还有个using编译扩展方式,与using声明方式的区别是:using声明对名称空间某个实物进行扩展,using编译对名称空间所有实物进行扩展; • using A::num; • using B::num; • using namespace A; • using namespace B; 名称空间嵌套: 名称空间可以定义在另一个名称空间内,以单层嵌套为例,要访问内部名称空间中的实体,必须采用“外部名称空间::内部名称空间::实体名”的形式,如果是多层嵌套,还要多次使用作用域限定符 如下图示: 类的作用域 类定义作用域: 从类定义结束开始,到从外面包围类定义的块结束(若类定义外无包围块,则结束于文件) 使用类的程序员在类定义作用域下编程 类定义作用域为包含类定义的花括号语句块,如果没有花括号语句块,则为从类定义开始的全部代码空间,如: v class A{ //外部没有包含类定义的快 v //… v }; v //A类定义作用域 v void f(){ v class B{ //外部有包含类定义的快存在 v //… v };//B类定义作用域范围 v }//B类定义作用域到此为止 v ……//文件到此为止(A类定义作用域到此为止) 类作用域: 类定义内部及成员函数定义内部 实现类的程序员在类作用域下编程【:定义文件(头文件)和实现文件都是在类作用域中】 类作用域中,类的成员函数对数据成员和其他成员函数具有无限制的访问权。 而类定义作用域的含义是,【可以定义类的作用域】要想定义类,必须在类定义作用域中,脱离类定义作用域不能使用此类,如上面程序中对象B,必须在函数F中才能使用定义,f外想定义门儿都没有。 如: v // test class scope v //====================== v #include- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 名称 空间 内部空间 作用 笔记 总结
![提示](https://www.zhuangpeitu.com/images/bang_tan.gif)
链接地址:https://www.zhuangpeitu.com/p-9118377.html