zoukankan      html  css  js  c++  java
  • 变量的范围 namespace

    变量的范围

     

    • 范围

      变量有 菊部变量 和 全局变量之分, 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,各自的范围就是全局和对应的代码范围。
      

    阅读原文

  • 相关阅读:
    源码安装php7.2
    Docker虚拟化之<基础命令>
    Docker虚拟化之<基础理论>
    旧版Linux系统下载地址
    Linux磁盘分区,挂载
    linux crond任务调度
    Linux学习之组管理和权限管理
    mysql 外键的基本使用
    Linux指令(压缩和解压类)
    Linux指令(搜索查找类)
  • 原文地址:https://www.cnblogs.com/springbrotherhpu/p/10919551.html
Copyright © 2011-2022 走看看