转
学习语言到应用编程,大约可以分为三步:1.学习语言的语法、标准库、思想;2.学习相关操作系统的API(应用程序编程接口);3.学习类库使用。有一定经验后,三者可以交替进行,相互加深。此外还要学习一些基础理论,像设计模式、算法与数据结构等。
附:另外几个常见的概念——答neverdown1983网友问
问:标准库和类库有什么区别? 那个应用程序编程接口(API)能不能解释一下?谢谢了!
我想先说说库(Library)吧,想必这个概念诸位都有所了解,在下多罗嗦几句再说一下:所谓库,就是许多程序代码的集合:编程的时候,会有许多常用的功能,如果每个用到这些功能的程序都要从头写一遍,则会出现无谓地重复劳动;因此人们把这些常用的功能编写好,并按一定的逻辑关系组织、封装起来,便于编程时直接调用,就成为了库。
库中的程序模块是怎么放置的呢?
嗯,首先,我们很自然会想到把那些常用的功能封装成一个个相应的函数,这样程序要用到这些功能的时候,我们就调用相应的函数。这些函数组成的库自然可以叫做函数库,显然函数库的思想是面向过程的;
其次,我们也可以把要实现的任务封装成一个个类(class),例如要某个库包含文件操作的功能,设计者可能会写一个File类,它或许会有open、close、reset、read、write等方法,内部也可能会有一些保存文件信息的数据结构,等等。这些由各种类组成的库称为类库,它是面向对象的。
因此,按组织思想分,库可以分为函数库、类库等。
至于标准库与非标准库,则是另一种分类方式。如果某个库是C++语言标准所“规定”要有的,如STL(即标准模板库,我们在C++中常用的vector、list之类的容器以及相关算法都属于STL的一部分),是语言中的一部分,则称为C++的标准库(被标准化了的,无论VC、C++ Builder还是其它什么C++编译平台,都要求包含它才算是“真正”的C++)。当然,标准库的范围比较窄,除此之外的诸如MFC、VCL、Qt等都是其它软件厂商(或组织)自己编写的,不是C++标准所规定(单纯介绍C++的书也不会介绍它们),不是语言的一部分,所以不是标准库。
应用程序编程接口(Application Programming Interface)是操作系统为程序员提供的功能。你要在一个操作系统上编写程序,一举一动都要依赖操作系统:你要读一个文件,或者在屏幕上画一个点,最终都是要求操作系统替你实现的,而这些“要求”的方式,或者说是“与操作系统打交道”的方式,就是通过编程接口。在DOS中,程序员要实现的功能最终是通过中断的方式“告诉”操作系统,从而让其替你完成的,因此可以说中断是DOS系统的API;到了更复杂的Windows系统,由于中断过于简单与低级,所以Windows为程序员提供的是一系列的函数,这些函数已经被编译好,大多放在各个随系统一起安装好的.dll文件中,大多数情况下,Windows下的编译器会将我们的程序与这些函数库链接好;很自然地,它们就被称为API函数。Windows的API函数成千上万,与DOS区区十几几十条的中断相比实在是复杂多了,从而提供了比DOS更多、更完善的服务。不过学习的时候不可能把这些函数的名称、调用方法、参数表之类全部记得一清二楚,一般对部分最常用的函数有个大概的掌握就可以;其它的一般是随用随查,这方面MSDN是一个相当好(而且大概也是最权威)的资料集。