3.1命名空间和的using声明

文章目录

      • 每个名字都需要使用using声明
      • 头文件不应该包含using声明

到目前为止,我们使用到的库函数基本都属于命名空间std,而程序也是显示的将这一带你标示出来,std::cin,作用域操作符(::)的意思是:编译器应该从操作符左侧名字的作用域中寻找右侧的那个名字。

上面的那个方法很繁琐,我们将使用一种最安全的方法using声明,之后将会介绍另一种方法。

首先就是using的用法

using namespace::name;

那么就有接下来的这段:

#include
using std::cin;


int main()
{
	int i;
	cin >> i;          //1
	cout << i;         //2
	std::cout << i;    //3
	return 0;
}
  1. 正确,cin有std:: cin的声明
  2. 错误,没有对应的using声明,必须使用完整的名字
  3. 正确,显式的从std中使用cout

每个名字都需要使用using声明

按照规定的,每个using声明引入命名空间中的一个成员。例如,可以把要用到的标准库中的名字都以using声明表示出来,但这样子很呆,比如:

#include
using std::cin;
using std::cout;
using std::endl;

int main()
{
	int i;
	cin >> i;         
	cout << i<< endl;         
	return 0;
}

如此的话看着每需要一个函数就要定义一次,很呆。所以我们现在先不用了解怎么弄,先这样子

#include
using namespace std;

int main()
{
	int i;
	cin >> i;         
	cout << i<< endl;         
	return 0;
}

之后会再进行了解namespace。

头文件不应该包含using声明

位于头文件中的代码一般来说不应该使用using声明。这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件中有using声明,那么每个使用了该头文件的文件就会有这个声明。对于某些程序员来说,由于不经意间包含了一些名字,反而可能产生始料未及的名字冲突。

你可能感兴趣的:(C++,算法,c++,开发语言)