zoukankan      html  css  js  c++  java
  • c++ --作用域与可见域

    专题--作用域与可见域

    一、作用域  

      c++作用域可分为5类:函数原型作用域、块作用域、类作用域、文件作用域和全局(程序)作用域(跨文件)。

    1. 函数原型作用域(最小的作用域)

      函数原型:int func(int x); 这是一个函数声明,函数形参x 的作用域就时所谓的函数原型作用域。

    2. 块作用域

      一对大括号 { ... } 内的一段程序,块中声明的标识符作用域就是块作用域。

    3. 类作用域

      类成员的作用域。

    4. 文件作用域(static

      全局静态变量具有全局作用域,从声明处开始,到文件(.cpp文件)结尾处结束。

    5. 全局(程序)作用域(extern

      全局变量具有全局作用域,只要在使用前对其进行声明(可定义性声明/引用性声明),便可在程序(有若干个文件组成)的任意位置使用全局变量。

    二、可见域

      作用域指的是变量理论上有效的源代码区域,而可见域指的是该变量实际的内存区域。如果没有屏蔽发生,可见域和作用域应该是等价的

      只有在可见域内才能对变量进行合法的访问。

      引用声明不能提供全局可见性(不具备跨文件性质),这意味着,在使用全局变量之前,必须在当前文件或当前块中进行引用声明。

      内部静态变量(局部static)的作用域、可见域及屏蔽法则和自动变量一样,但外部静态变量需要注意:在一个文件中声明的外部静态变量(全局static),将屏蔽其他文件中定义的同名全局变量。但是,不允许在同一个文件中定义同名的全局变量和外部静态变量

      默认情况下,函数是全局的,可以在不同的文件中共享。和全局变量一样,使用函数前必须要对其进行声明(包含有函数声明的头文件)。

      可使用static关键字将函数声明为文件内部的,这样,只能在本文件中使用该函数,在函数定义和声明中都要使用static关键字。static函数将屏蔽其他文件中外部定义的同名函数


  • 相关阅读:
    【BZOJ3190】[JLOI2013]赛车 单调栈+几何
    【BZOJ2738】矩阵乘法 整体二分
    PR 批量导入
    JAVA 水果机游戏及编码
    sap 图标查看
    ABAP 给动态变量赋值
    abap 数字移动小游戏
    FI模块与SD、MM的接口配置方法
    信用控制增强
    SAP-财务知识点
  • 原文地址:https://www.cnblogs.com/cygalaxy/p/7103674.html
Copyright © 2011-2022 走看看