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;

  • 相关阅读:
    kali linux源大全
    kali2016.2(debian)快速安装mysql5.7.17
    hadoop java上传文件
    HDFS客户端的权限错误:Permission denied
    hadoop fs命令
    解决Unable to load native-hadoop library for your platform
    并查集。路径压缩 算法运用学习(一)
    HBase快速安装
    记一次zookeeper单机伪集群分布
    ZooKeeper使用命令大全
  • 原文地址:https://www.cnblogs.com/y4247464/p/13815264.html
Copyright © 2011-2022 走看看