博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
变量的范围 namespace
阅读量:5145 次
发布时间:2019-06-13

本文共 1039 字,大约阅读时间需要 3 分钟。

变量的范围

 

  • 范围

  变量有 菊部变量 和 全局变量之分, local variable 和 global variable

  一般在函数体外定义的变量是全局的,函数体内定义的变量只能在函数内使用
  
  
  注意:在同一个范围内,同一个变量名不能定义两次
  
   在不同的空间范围内可以定义同样名字的变量,这时候他们的作用范围也是不同的
  

  • NameSpace
      为了避免命名冲突(因为如果大家都是全局变量的话,程序一多,难免会有冲突,比如说都 int x;作为计数器)
      Namespaces可以把变量约束在不同的命名空间里,通过调用不同的命名空间来指定某个变量,类似于“三年级一班的小明”、“三年级二班的小明”等等
      
      在命名空间内部可以直接使用变量a和b,在外部想引用空间内的对象的话需要使用 “范围操作符” 双冒号 ::
      上面的例子中,如果想在外面使用a和b,myNamespace::amyNamespace::b
      

  命名空间可以有效的避免命名冲突,如下图有两个value()函数,pi虽然定义在bar内部,但是也可以在main里面调用这个量

  
  
  命名空间可以分开写,下面的foo空间分开两次定义了a,c 效果和一下定义a和c是一样的,这只是简单的分行写,甚至还可以分开到不同的文件或者源代码里去定义。
  

  • using
      上面说到了命名空间,我们在引用空间内部的对象的时候,格式是 空间标识符::对象
      通过using我们可以省略前面的空间名字,就像之前的std::cout简写成cout一样,前提是 using namgspace std;  下面看两种using方式
      
      1. 直接把对象using出来直接用,这里是using
      
      
      2.把命名空间引出来,using namespace,他里面的所有成员可以直接用,但是其他空间里的同名变量还是得按标准来。这里是using namespace
      
      这个例子如果再using namespace second;就会报错了,两个空间里都有x y,编译器无法确定用哪个空间里的。

  using namespace具有自己的使用范围,在全局using和在代码片里using,各自的范围就是全局和对应的代码范围。

  

转载于:https://www.cnblogs.com/springbrotherhpu/p/10919551.html

你可能感兴趣的文章
【转】递归与优化:尾递归
查看>>
快速软件开发 学习笔记 之四
查看>>
c#导出Excel的方法
查看>>
《JavaScript高级程序设计》笔记:函数表达式(七)
查看>>
同步和异步关注的是消息通信机制,阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态...
查看>>
表单验证
查看>>
spring mvc 数据校验
查看>>
ANTLR4权威指南 - 第5章 设计语法
查看>>
Python enum 枚举 判断 key(键) 或者 value(值)是否在枚举中
查看>>
python3 的一些常见的小知识点
查看>>
rpm 校验
查看>>
搭建eureka服务
查看>>
二叉树
查看>>
c++浅复制和深复制
查看>>
在一个view类里面获取viewcontroller
查看>>
我的框架说明文档 2016-04-06
查看>>
【C/C++开发】C++ Thread对象封装
查看>>
【VS开发】VSTO 学习笔记(十)Office 2010 Ribbon开发
查看>>
【并行计算-CUDA开发】从熟悉到精通 英伟达显卡选购指南
查看>>
【计算机视觉】背景建模之PBAS
查看>>