C++中的命名空间&&输入输出

一、命名空间

1.引入
  • 在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。
2.定义

(1)命名空间的定义

namespace Namespace
{
// 内容
}

(2)相同的命名空间可以分割在不同的文件中,编译器最后都会合成在同一个命名空间下

namespace Namespace
{
int iTest3;
int iTest4;
}

(3)命名空间可以嵌套

namespace Namespace1{
int iTest0;
int iTest1;
namespace Namespace2
{
int iTest1;
int iTest3;
int iTest4;
}
}

(4)没有名称的命名空间(该命名空间的内容相当于全局变量

namespace
{}

说明:
(1)从本质上讲,一个命名空间就定义了一个范围,在命名空间中定义的任何东西都局限于该命名空间中。
(2)没有名称的命名空间可以只创建在声明它的文件才可见的标识符。(只有在声明这个命名空间的文件中,它的成员才是可见的,它的成员可以被直接访问,不需要命名空间名称来修饰。对于其它文件,该命名空间是不可见的)。
(3)把全局名称的作用域限制在声明他的文件中的一种方式就是把它的声明为静态的,尽管C++支持全局静态,但最好的方式还是使用未命名的空间。

3.使用方式

(1)命名空间内直接使用

namespace NamespaceTest
{
int iTest0;
int iTest1;
int iTest2;
void TestNamespace()
{
iTest0 = 10;
iTest1 = 20;
}
}

(2)命名空间名称限制

void TestNamespace()
{
Namespace::iTest0 = 10;
Namespace::iTest1 = 20;
}

(3)导入命名空间

using namespace Namespace;
void TestNamespace()
{
iTest0 = 10;
iTest1 = 20;
}

(4)使用谁引入谁

using Namespace::iTest0;
using Namespace::iTest1;
void TestNamespace(){
iTest0 = 10;
iTest1 = 20;
}

二、输入输出

  • 一段标准的C++代码
#include <iostream>
using namespace std;
int main()
{
cout << "change world!" << endl ;
return 0;
}
  • 剖析

这里写图片描述

猜你喜欢

转载自blog.csdn.net/cherrydreamsover/article/details/81839768