本文章代码块默认为写了std命名空间的条件下,所以代码里面的输出直接写了cout,没写作用域
什么是c++命名空间
C++命名空间是一种机制,用于解决全局变量名或函数名之间的冲突问题。它可以将一组相关的变量、函数和类组织在一起,形成一个独立的命名空间,避免命名冲突。命名空间通过在代码中定义和使用关键字"namespace"来创建。
#include <iostream>
using namespace std;
// 定义命名空间
namespace A {
int num = 10;
void func() {
cout << "This is function in namespace A" << endl;
}
}
namespace B {
int num = 20;
void func() {
cout << "This is function in namespace B" << endl;
}
}
int main() {
// 使用命名空间A中的变量和函数
cout << A::num << endl; // 输出:10
A::func(); // 输出:This is function in namespace A
// 使用命名空间B中的变量和函数
cout << B::num << endl; // 输出:20
B::func(); // 输出:This is function in namespace B
return 0;
}
作用
- 避免命名冲突:不同的命名空间中可以有相同名称的标识符,它们之间不会发生冲突。
- 提高代码可读性:通过使用命名空间,可以更清晰地区分不同模块或库中的标识符。
- 便于扩展和维护:命名空间可以帮助组织和管理代码,使得代码的扩展和维护更加方便。
定义命名空间
定义命名空间使用namespace关键字,后面跟着命名空间的名字,然后用花括号{}将命名空间中的内容(变量、函数、类等声明)括起来。
namespace MyNamespace {
int myVariable = 10;
void myFunction() {
cout << "This is my function." << endl;
}
}
当命名空间名字太长时,也可为命名空间取别名
namespace long_namespace_name {
// 这里有很多代码
}
namespace alias = long_namespace_name;
using指令会将整个命名空间中的所有成员引入当前作用域,不过这种方式可能会引起名称冲突,应该谨慎使用。
using namespace MyNamespace;
using namespace std;
int main() {
cout << myVariable << endl;
myFunction();
return 0;
}
命名空间嵌套
C++ 允许命名空间嵌套。这意味着可以在一个命名空间内部定义另一个命名空间。
namespace Outer {
int outerVariable = 1;
namespace Inner {
int innerVariable = 2;
void innerFunction() {
cout << "Inner function." <<endl;
}
}
}
要在主函数中访问innerVariable和innerFunction,可以这样写:
int main() {
cout << Outer::Inner::innerVariable << endl;
Outer::Inner::innerFunction();
return 0;
}
标签:定义,int,代码,namespace,空间,嵌套,C++,命名,cout
From: https://blog.csdn.net/m0_73949707/article/details/143719279