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;

 

posted @ 2020-10-14 15:43  朱果果  阅读(437)  评论(0编辑  收藏  举报