龙空技术网

C++学习笔记——名称空间(namespace)

InfinityCoder 272

前言:

而今看官们对“c语言isspace函数”大致比较关注,同学们都需要学习一些“c语言isspace函数”的相关资讯。那么小编同时在网上搜集了一些关于“c语言isspace函数””的相关知识,希望各位老铁们能喜欢,兄弟们快快来了解一下吧!

文章为自己的学习总结,如有不对之处还望之处~

名称空间

对于绝大多数的C++入门书籍来说,第一个程序可能都和下面的这个程序类似:

#include <iostream>using namespace std;​int main(){    cout << "Hello World!\n";}

这个程序主要可分成三部分:

1.预处理指令#include

2.编译指令 using namespace

3.main()函数

对于学过C语言的小伙伴来说预处理指令和main()函数都应该很熟悉了,而这个编译指令 using namespace有什么呢?我刚看到的时候也是一头雾水。

C++头文件

C语言的头文件是以.h结尾的,而上面的程序却并没有,但是实际上C++也是支持C语言头文件的写法的,不过那属于旧式风格了,C++的新式风格是不需要写.h扩展名的,但是我们需要使用名称空间编译指令来使iostream 中的定义对程序可以,简单说来就是需要增加一条代码:

using namespace std;
名称空间

名称空间支持是一项C++的特性,主要是为了使得程序员们在编写大型程序以及将多个厂商现有的代码组合起来的程序时更容易。

举个简单的例子,当你需要使用两个都已经封装好的产品时,并且它们都含有一个名为fun()的函数,这样在使用fun()函数的时候,编译器将不知道指的是班哪一个版本的fun()函数。名称空间能够让厂商将其产品封装在一个叫做名称空间的单元中,这样就可以用名称空间的名称来指出想使用哪个厂商的产品。如Alibaba可以将函数定义在一个名为Alibaba的名称空间中。这样其fun()函数的全称就为Alibaba::fun();同样Tencent公司的函数可以表示为Tencent::fun()。如此一来,程序就可以使用名称空间来区分不同的版本了:

Alibaba::fun("children.");Tencent::fun("women.");

通过这种方式,类、函数和变量便是C++编译器的标准组件,它们现在都被放置在名称空间std中。对于头文件来说,仅包含没有扩展名h的时候。

如此一来我们就知道程序中的cout其实是std::cout,endl其实是std::endl,当不使用using编译指令时,程序就可以这样写:

std::cout << "Hello, world.";std::cout << std::endl;

然后,多数程序员都不喜欢这样编写,你可以很清楚的知道原因,这意味着我们在需要使用名称空间代码的使用总是需要添加上那么一点点代码,这很烦。于是乎,using指令应运而生,通过下面一条指令,我们就可以使用在名称空间std中定义的名称,而不必使用std::前缀:

using namespace std;

这个指令使得std名称空间中的所有名称都可用。这是一种偷懒的做法,但是在大型项目中,这会有一个潜在的问题。更好的方法是,只是所需的名称可用,如:

using std::cout;using std::endl;using std::cin;

使用上面的编译指令来替代using namespace std;,便可以使用cout和endl,而不必添加std::前缀。

但是使用iostream中其他名称时,依然需要加上std::前缀,除非你将它们分别添加到using列表中。

当然,对于我们这些初学者来说,直接使用偷懒的办法即可,因为对于我们所编写的简单程序来说,采用何种名称空间管理办法都无关紧要。

小结

以上就是关于using指令的简单解读,如有不对之处,欢迎之处。

标签: #c语言isspace函数