命名空间的域运算符::及全局变量

命名空间和函数前面加上::

经常看到命名空间前就只有::

比如:::a;这种代表是全局的test

比如:::f(),代表使用系统API也就是全局的

避免使用到局部定义的命名空间或者函数。

例如:

#include <iostream>
using namespace std;
namespace A
{
    int a = 100;
    namespace B            //嵌套一个命名空间B
    {
        int a =20;
    }
}

int a = 200;//定义一个全局变量

int main(int argc, char *argv[])
{
    cout <<"A::a ="<< A::a << endl;
    cout <<"A::B::a ="<<A::B::a << endl;
    cout <<"a ="<<a << endl;
    cout <<"::a ="<<::a << endl;

    int a = 30;
    cout <<"a ="<<a << endl;
    cout <<"::a ="<<::a << endl;

    return 0;
}

全局变量a表达为::a,用于当有同名的局部变量时来区别两者。

posted @ 2021-09-06 14:40  一只小菜菜鸟  阅读(196)  评论(0)    收藏  举报