• c++作用域及命名空间


    C++作用域

    1. 什么是作用域
      每一个变量、函数、数组、结构体、类、等实体都有其自己有效的作用范围,这就是变量的作用域。

      在局部变量中,局部变量只在定义的函数范围内有效;即从变量定义开始到函数结束被释放。
      
    int fun()
    {
        int a;   //a的作用域开始
        ……
        ……
    }            //a的作用域结束
    
    

    在全局变量中,全局变量的作用域为从定义变量的位置开始到本源文件结束。
    若全局变量与局部变量重名,则在局部变量作用域中优先使用局部变量;
    若想在局部变量作用域中使用全局变量需要使用作用域限定符(::)

    
    #include<iostream>
    using namespace std;
    
    int a = 1;                          //全局变量a的作用域开始
    void fun();
    int main()
    {
        int a = 2;                     //局部变量a的作用域开始
        fun();
        cout << a <<endl;       //在局部变量作用域中优先使用局部变量
        cout << ::a <<endl;     //限定使用全局变量
        return 0;
    }          //主函数结束局部变量a作用域结束;本源文件结束,全局变量a的作用域结束
    
    void fun()
    {
        cout << a <<endl;
    
    }
    
    
    

    这里写图片描述

    C++命名空间简述

    1. 什么是命名空间:

      命名空间是ANSI C++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。

    2. 命名空间的作用

      建立多个相互分割的作用域,把实体进行分隔,以免名字冲突。

    3. 访问作用域内实体

      利用作用域限定符访问作用域内实体;

      表达式:
      命名空间名::命名空间成员名;

    #include <iostream> 
    using namespace std;   
    
    namespace Bird
    {
        void Show()
        {
            cout << "Bird" << endl;
        }
    }
    
    namespace Person
    {
    
        void Show()
        {
            cout << "Person" << endl;
        }
    }
    
    
    int main()
    {
    
        Bird::Show();
        Person::Show();
    
        system("pause");
        return 0;
    }

    这里写图片描述

    4.标准命名空间std

    C++标准库所有标识符都是在一个名为std的命名空间中定义的,或者说标准头文件中函数、类和对象模板是在命名空间std中定义的;

    因此为了减少::的使用可以在文件开头加入 using namespace std;

  • 相关阅读:
    [LintCode] Single Number 单独的数字
    [LeetCode] 444. Sequence Reconstruction 序列重建
    [LeetCode] K-th Smallest in Lexicographical Order 字典顺序的第K小数字
    [LeetCode] Arranging Coins 排列硬币
    [LeetCode] Ternary Expression Parser 三元表达式解析器
    [LeetCode] 436. Find Right Interval 找右区间
    在Mac上配置全局的Git忽略文件
    Git『Everything up-to-date』问题解决
    Android组件化框架项目详解
    Android架构设计之插件化、组件化
  • 原文地址:https://www.cnblogs.com/D-Rui/p/9769184.html
Copyright © 2020-2023  润新知