购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 C++的显示进化

瑞问:“是不是有不那么烧脑的做法呢?”

好的,我们换一种写法。

瑞说:“这看起来舒服多了,我也能算出3。”

这是C++的做法,C++是对C语言的改良,所以C++提供了更加强大的功能,对程序员也更友好。

瑞问:“既然C++这么友好,那为什么不直接用C++?”

C++语言是在C语言的基础上扩展出来的语言,所以C语言本身就是C++语言的一部分,C语言一切的功能C++都支持。学习C语言也就是学习C++语言。

我解释一下新的程序吧,第一行变成了#include <iostream>。

瑞说:“<>里面的名字变了。”

是的,我们要用另一位编程前辈给我们的程序了。

注意: 因为#include总是要写在程序开始的地方,所以大家也将其称为导入头文件。

瑞说:“第二行‘using namespace std;’看上去很复杂。”

这句话叫作定义命名空间,这是C++增加的。C语言里没有这个语句。我们通过之前的经验知道,在这里使用的printf,是别人提供的一组名字叫作printf的程序。时间长了,越来越多的人会分享自己的程序,那我们就会有越来越多的不一样名字的程序可调用。

瑞问:“名字起多了是否会重名呢?”

是的,到了C++的时代,这个问题就很严重了。为了解决这个问题,加入了一个叫作命名空间的概念。举个例子,在中国会有很多地名,你的学校旁边有一座山叫“牛头山”,可是我知道,在其他很多地方,也有不少牛头山,但是这没有问题,发生名字冲突的时候,我们会说这是“云南省昆明市牛头山”,“云南省昆明市”就是命名空间。今天我所要使用的这个程序的名字,会放在std的命名空间里,这样我就可以确保这个名字是明确且唯一的。

瑞说:“‘using namespace std;’就是‘云南省昆明市’。”

输出的语句是“cout<<1+2;”,cout是调用别人程序的名字。这个名字起得不错:c是控制台;out是输出;<<是一个天才的设计,非常形象地表示把后边的内容送到控制台输出。事实上,我知道这个设计在当时费了不少周折。

瑞问:“用这种方式实现输出1+2=3的效果该如何写?”

瑞说:“还能不断地<<!”

字符串和数字还是不能混在一起的,但是这么做看上去舒服多了。额外地,我加上了endl,这是换一行的功能,和printf里的\n效果一样。

瑞说:“C++语言和C语言相比,变化还真是不小。”

思考: 体会了C语言和C++语言实现相同功能的不同做法,你会发现,编程技术越来越人性化了。在计算机发展的早期,编程技术只能关心如何更好地满足计算机的需求。随着计算机越来越强大,编程语言的设计者在前人成果的基础上思考得也越来越多,编程技术也越来越靠近人的思维。不过,事情总是有利有弊,编程技术人性化的同时对高手来说乐趣会变更少,所以非常多的程序员还是会迷恋C语言这样的技术。 6M4bdQAtgrlDJxWxHkkwUObuXCIBfGauiXBhymKDopGXKG7P4zUe8uRJxP3DpeJF

点击中间区域
呼出菜单
上一章
目录
下一章
×