C++之namespace

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

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

From DeepSeek 20250218

C++ 的namespace机制通过逻辑隔离和分层组织,解决了大型项目中的命名冲突问题,同时提高了代码的可读性和可维护性。它是现代 C++ 开发中不可或缺的基础设施,尤其在多团队协作、使用第三方库的场景下作用显著。

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();

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容