zoukankan      html  css  js  c++  java
  • C++入门-作用域 与 命名空间

    一、作用域:

    1.全局作用域  名字空间域(namespace)

    2.局部作用域  块作用域  { ... }

    3.类域 (class)

    数据隐藏

    int n = 1;
    int main(int argc, char const* argv[]) {
        int n = 2;
        {
            int n = 3;
            cout << "block n = " << n << endl;
        }
        cout << "main n = " << n << endl;
        return 0;
    }
    out:
    block n = 3
    main n = 2

    1.在不同作用域可以定义多个相同名字的变量

    2.内部的变量会隐藏外部的变量(从内到外查找)

    二、命名空间

    namespace

    namespace class1 {
    string name = "zhangsan";
    };
    int main(int argc, char const* argv[]) {
        //cout << name << endl;  error:undefined
        cout << class1::name << endl;
        return 0;
    }

    1.命名空间是一个作用域的划分,通常用于区分项目中模块或组件

    2.关键字namespace,可以分开使用

    namespace class1 {
    string name = "zhangsan";
    };
    
    namespace class1 {
    string name = "limei";
    };

    3.名字空间可以嵌套

    4.命名空间可以取别名

    namespace c  = class1;

    5. 在命名空间内使用全局作用域变量 :: n = 1; 直接使用四饼操作符;

    三、命名空间的引用

    1. 直接使用命名空间::内容 (推荐)

    2. 声明命名空间  using namespace xxx; 表示此行之后使用的都是xxx空间里面的内容,不用加四饼

    3.声明只使用命名空间的部分变量或函数  using class1::n;

  • 相关阅读:
    leetcode之Search in Rotated Sorted Array
    leetcode之Search Insert Position2
    leetcode之Search Insert Position
    二分查找之Search for a Range
    leetcode之Two Sum
    leetcode之Spiral Matrix II
    leetcode之Spiral Matrix
    杨辉三角
    周计划1[7.22~7.28]
    英美音的比较
  • 原文地址:https://www.cnblogs.com/y4247464/p/13815264.html
Copyright © 2011-2022 走看看