【Cpp】命名空间
Cpp 的命名空间机制是用来解决复杂项目中名字冲突的问题。
例如,Cpp 标准库的所有内容都定义在 std 命名空间中,如果定了一个 cin 变量,则可以通过 cin 访问自定义的 cin 变量,通过 std::cin
(::
是作用域操作符)访问标准库的 cin 对象,而不用担心产生冲突。
声明命名空间
用关键字 namespace
声明命名空间:
namespace 命名空间 {
命名空间内部成员
}
使用 命名空间::成员名;
可以访问命名空间内的函数或变量。
举例:
#include <iostream>
namespace A {
namespace B { //命名空间可以嵌套
void func() {
std::cout << "B" << std::endl;
}
}
void func() {
std::cout << "A" << std::endl;
B::func();
}
}
void func() {
A::func();
A::B::func();
}
int main() {
func();
return 0;
}
using 指令
声明了命名空间后,如果在命名空间外部访问命名空间内的成员,每次都要在成员名前面加上 命名空间::
会很繁琐,using
指令可以简化这一操作。
//方式一:省略“某个”成员名前面的命名空间,直接通过成员名访问成员
using 命名空间::成员名;
//方式二:直接通过成员名访问命名空间内“任何”成员
using namespace 命名空间;
举例:
#include <iostream>
using std::cin;
//using namespace std;
int main() {
int a;
cin >> a;
return 0;
}
注意:using 指令可能会造成命名冲突导致编译错误。
#include <iostream>
using namespace std;
int main() {
int a, cin;
//当有本地同名变量后,优先使用本地,cin 被认为是 int 型,编译错误
cin >> a;
return 0;
}
本文来自博客园,作者:hzyuan,转载请注明原文链接:https://www.cnblogs.com/hzyuan/p/17965052
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)