C++之namespace

2018-09-02  本文已影响0人  滩主

为什么要有命名空间的出现

在C++中,名称(name)可以是符号常量、变量、宏、函数、结构、枚举、类和对象等等。为了避免,在大规模程序的设计中,以及在程序员使用各种各样的C++库时,这些标识符的命名发生冲突,标准C++引入了关键字namespace(命名空间/名字空间/名称空间/名域),可以更好地控制标识符的作用域

C++作用域级别

代码块、复合语句、函数体

命名空间

全局

注意

命名空间可以是全局的,也可以位于另一个命名空间之中,但是不能位于类和代码块中

而using指令是改变了标识符的作用域可见性

```C++

#include

void test1()

{

{

// 代码块级作用域

        using namespace std;

cout <<"debug1" << endl;

}

//    cout << "debug2" << endl;

}

void ff()

{

//    cout << "debug20" << endl;

}

void test2()

{

// 函数级别

    using namespace std;

cout <<"debug10" << endl;

ff();

}

namespace data1 {

int num =10;

}

namespace data2 {

int num =20;

namespace data3 {

int num =30;

}

}

void test3()

{

int num =50;

using namespace std;

using namespace data1;

using namespace data2;

cout << num << endl;

}

int main()

{

test1();

test2();

test3();

}

```

上一篇 下一篇

猜你喜欢

热点阅读