C++命名空间(namespace)的使用

简介: C++命名空间(namespace)的使用

一、基本语法

namespace 命名空间名字
{
 
}

注意事项:在定义命名空间时,结束不要加分号,示例如下:

namespace model1
{
    int i;//当前变量i只对命名空间model1可见,它的作用域被限定在model1
    int j;
}

namesapce model2
{
    int i;//当前变量i只对命名空间model2可见,它的作用域被限定在model2
}

由于使用命名空间后,变量的作用域被限定,所以在使用变量时,就需要通过特定方式来完成。需要用到“::”操作符,“::”操作符是域解析操作符。例如:

model1::i = 1;
model2::i = 2;

除了直接使用域解析操作符,还可以采用using声明(using declaration),例如:

using model1::i;
i= 0;  //使用model1定义的变量i
model2::i= 10;  //使用model2定义的变量i


二、命名空间成员使用方法总结

方法一 :命名空间名::成员 比如:spaceA::a;

使用using 可以使得命名空间中的成员暴露外部 ,以致可以使用该成员

方法二: using 命名空间名::成员 ----> 把指定的成员暴露给外部

比如:using spaceA::a;

方法三: using namespace 命名空间名 —> 将其所有成员暴露给外部

比如: using namespace spaceA;


三、命名空间嵌套

namespace 命名空间1
{
  int a;
  namespace 命名空间2
  {
    int a;
  }
}
相关文章
|
23天前
|
编译器 C++
C++进阶之路:何为命名空间、缺省参数与函数重载
C++进阶之路:何为命名空间、缺省参数与函数重载
21 3
|
6天前
|
C++
C++一分钟之—名空间(namespace)的作用与使用
【6月更文挑战第22天】C++的命名空间是代码组织的关键,防止命名冲突并促进模块化。通过`namespace`定义代码块,如`MyNamespace{...}`,并使用别名(`namespace MN = MyNamespace::...`)简化引用。避免过度使用和嵌套,以及`using namespace`的滥用,而应在小范围内导入所需成员。明智选择名空间名称并有效利用`using`声明,能提升代码可读性和专业性。
9 1
|
13天前
|
人工智能 安全 编译器
【C++入门】—— C++入门 (上)_命名空间
【C++入门】—— C++入门 (上)_命名空间
16 2
|
14天前
|
C++
c++中的using namespace std;
c++中的using namespace std;
|
2天前
|
Unix 编译器 C语言
【C++航海王:追寻罗杰的编程之路】关键字、命名空间、输入输出、缺省、重载汇总
【C++航海王:追寻罗杰的编程之路】关键字、命名空间、输入输出、缺省、重载汇总
5 0
|
3天前
|
编译器 C语言 C++
【C++】:C++关键字,命名空间,输入&输出,缺省参数
【C++】:C++关键字,命名空间,输入&输出,缺省参数
10 0
|
28天前
|
C++
C++中使用namespace关键字定义和访问命名空间的技术性探讨
C++中使用namespace关键字定义和访问命名空间的技术性探讨
16 3
|
28天前
|
域名解析 程序员 C++
C++命名空间
`C++`中的命名空间用于分割全局作用域,减少命名冲突。定义命名空间如`namespace expression {...}`,可使用`using`运算符或`using namespace`指令引用。案例展示如何在命名空间`Person`内定义变量和函数。注意:命名应具描述性,头文件中命名空间放预处理指令后,避免全局变量和过度使用`using`。命名冲突时可设命名空间别名。
18 2
|
14天前
|
C语言 C++
【C++语言】冲突-C语言:命名空间
【C++语言】冲突-C语言:命名空间
|
2天前
|
存储 编译器 C语言
【C++航海王:追寻罗杰的编程之路】类与对象你学会了吗?(上)
【C++航海王:追寻罗杰的编程之路】类与对象你学会了吗?(上)
8 2