Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
全部都想学怎么办
CPP_PrimerPlus
提交
ab65579c
C
CPP_PrimerPlus
项目概览
全部都想学怎么办
/
CPP_PrimerPlus
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CPP_PrimerPlus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ab65579c
编写于
5月 04, 2022
作者:
全部都想学怎么办
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
上传新文件
上级
7a569a28
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
46 addition
and
0 deletion
+46
-0
Ch9内存模型和名称空间/名称空间/传统的C++名称空间.cpp
Ch9内存模型和名称空间/名称空间/传统的C++名称空间.cpp
+46
-0
未找到文件。
Ch9内存模型和名称空间/名称空间/传统的C++名称空间.cpp
0 → 100644
浏览文件 @
ab65579c
/*名称空间:
*在C++中,名称可以是变量、函数、结构、枚举、类以及类和结构的成员。
当随着项目的增大,名称相互冲突的可能性也将增加。使用多个厂商的类库时,
可能导致名称冲突。例如,两个库可能都定义了名为List、Tree和 Node的类,但定义的方式不兼容。
用户可能希望使用一个库的 List类,而使用另一个库的Tree类。这种冲突被称为名称空间问题。
*
C++标准提供了名称空间工具,以便更好地控制名称的作用域。
经过了一段时间后,编译器才支持名称空间,但现在这种支持很普遍。
*/
//介绍C++中新增的名称空间特性之前,先复习一下C++中已有的名称空间属性,
//1.声明区域( declaration region)
/*
*声明区域是可以在其中进行声明的区域。
例如,可以在函数外面声明全局变量,对于这种变量
,其声明区域为其声明所在的文件。对于在函数中声明的变量
,其声明区域为其声明所在的代码块。
*/
//2.潜在作用域( potential scope)。
/*
*变量的潜在作用域从声明点开始,到其声明区域的结尾。
因此潜在作用域比声明区域小,这是由于变量必须定义后才能使用。
*/
//注意:
/*
*变量并非在其潜在作用域内的任何位置都是可见的。
例如,它可能被另一个在嵌套声明区域中声明的同名变量隐藏。
例如,在函数中声明的局部变量(对于这种变量,声明区域为整个函数)
将隐藏在同一个文件中声明的全局变量(对于这种变量,声明区域为整个文件)。
变量对程序而言可见的范围被称为作用域(scope),前面正是以这种方式使用该术语的。
*/
/*
*C++关于全局变量和局部变量的规则定义了一种名称空间层次。
每个声明区域都可以声明名称,这些名称独立于在其他声明区域中声明的名称。
在一个函数中声明的局部变量不会与在另一个函数中声明的局部变量发生冲突。
*/
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录