1.4 C++能够做些什么
或许不少人对计算机逐渐感兴趣,都是源于接触了一些优秀的游戏或者软件,我也是。当我还不知道程序设计是什么的时候,也曾幻想能够做一款像“红色警戒”那样令人兴奋的游戏,或是编出另一个操作系统,挑战一下Windows的霸主地位。不过,很遗憾地告诉大家,光靠本书中所介绍的C++内容是不可能开发出让人眩目的3D游戏,更不可能开发出一个图形化的操作系统。但是,一个会编游戏或软件的程序员必然对本书中的内容了然于胸,因为这些都是C++语言的基础。尽管如此,为了增加本书的趣味性,笔者还是在适合的章节处安排了一些初学者力所能及的小程序,以达到抛砖引玉的目的。
C++语言广泛应用于各种软件的开发。事实上,Windows下的应用软件也有不少曾经是用C++编写的(现在也有不少使用C#或者Java)。例如,用控制台可以编写计算量较大的科学计算程序;用MFC或WinForm类库可以编写中小型企业的内部管理软件;用图形应用程序接口可以编写3D游戏,或游戏机模拟器;利用C++能够接触系统底层的特点,可以编写优化软件让计算机的运作效率大大提高;利用C++可以与内存打交道的特点,可以编写游戏修改器;用C++还可以编写各种手机游戏。总而言之,C++的功能是非常强大的,而且强大得很低调。
由于C++是面向对象的高级语言,用它面向对象的特性来开发软件可以大大减少重复的工作,使设计程序变得更为轻松。例如当编写一个Windows窗口程序时,程序员不必去考虑窗口如何显示的细节,而只需要将大小和位置等信息编入代码即可。因为每个窗口都是相似的,没必要去做重复的工作。
图1.2所示是上海大学一位校友陈迪锋的作品。该赛车游戏约有1万行代码,使用了Visual C++和多个游戏引擎。要做成这样的游戏,并不是件容易的事情。没有扎实的C++基本功和多年来长期的坚持学习,很难有这样的成果。
为了降低学习的难度,本书主要介绍C++的语法特性以及如何编写控制台应用程序。控制台应用程序是C++程序设计的基础,涵盖了C++程序设计的大部分知识。而学习更多编程知识之前也必须掌握C++的语法特性和控制台应用程序。
控制台应用程序是一种基于字符方式的人机界面,即用户主要通过键盘来向计算机输入信息或发出指令。这与Windows下的命令控制行相似,是一种最基本的交互方式。图1.3所示是一个典型的控制台应用程序。