ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++的标识符的作用域与可见性

2021-02-19 23:02:52  阅读:192  来源: 互联网

标签:函数 作用域 声明 可见 int C++ 标识符


  下面是关于C++的标识符的作用域与可见性学习记录,仅供参考

标识符的作用域与可见性

  • 作用域是一个标识符在程序正文中有效的区域。

  • 作用域分类

    ①函数原型作用域

    ②局部作用域(快作用域)

    ③类作用域

    ④文件作用域

    ⑤命名空间作用域

函数原形作用域

  • 函数原型中的参数,其作用域始于"(",结束于")"。

  • 函数原形作用域举例

double area(double radius);

 

局部作用域

  • 函数的形参、在块中声明的标识符;

  • 其作用域自声明处起,限于块中。

  • 局部作用域举例

1 void fun(int a) {
2    int b = a;
3    cin >> b;
4    if (b > 0) {
5      int c;
6 
7      ......
8    }
9 }

类作用域

  • 类的成员具有类作用域,其范围包括类体和非内联成员函数的函数体。

  • 如果在类作用域以外访问类的成员,要通过类名(访问静态成员),或者该类的对象名、对象引用、对象指针(访问非静态成员)。

文件作用域(静态作用域)

  • 不在前述各个作用域中出现的声明,就具有文件作用域,这样声明的标识符其作用域开始于声明点,结束于文件尾。

可见性

  • 可见性是从对标识符的引用的角度来谈的概念

  • 可见性表示从内层作用域向外层作用域“看”时能看见什么。

  • 如果标识在某处可见,就可以在该处引用此标识符。

  • 如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。

  • 对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。

例如

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 int i; //全局变量,文件作用域
 6 
 7 int main(void)
 8 {
 9     i = 5;
10     {
11         int i; //局部变量,局部作用域
12 
13         i = 7;
14         cout << "i ="  << i << endl;
15     }
16     cout << "i= " << i <<endl;
17     return 0;
18 }

运行结果

 1 i=7 2 i=5 

标签:函数,作用域,声明,可见,int,C++,标识符
来源: https://www.cnblogs.com/iFrank/p/14418621.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有