肝C++primer plus的第1天——名称空间也有很多自己的故事

前言:在新版Devc++中使用了C++的新式风格,有些C的头文件被转换为C++的头文件,这些文件被重新命名,去掉了扩展名.h并在文件前面加上前缀c(表明来自C语言),例如math转换为了cmath,而且名称空间namespace std取代了.h

进入我们今天的正题——using namespace std;

首先这叫做using 编译指令,而名称空间有助于编写大型程序时便于组织程序,能够让厂商将产品封装在一个叫做名称空间的单元中,这样可以用名称空间的名称来指出使用哪个厂商产品

按照这种方式,类、函数和变量都被放置在名称空间std中,仅当头文件没有扩展名.h情况才是如此,这意味着iostream中定义的用于输出的cout变量实际上是std::cout,而endl实际上是std::endl,因此,可以省略编译指令using,按照下面的方式编码

std::cout<<"coming ";

std::cout<<std::endl;

这个using 编译指令使得std名称空间中所有的名称都可用,但这是一种偷懒的做法

大型项目有一个潜在隐患,因此更好的方法是

using std::cout;

using std::endl;

using std::cin;

另外说一个小的事情,cout<<"coming"与其说是程序显示了一条消息不如说它将一个字符串插入到了输出流中(coming是双引号中的一个字符串,cout对象有一个简单的接口)

\n是换行符,endl是控制符,endl能保证程序继续运行前刷新输出,\n不能保证

猜你喜欢

转载自blog.csdn.net/A963457200/article/details/81429042