C++入门学习笔记总结之谈
许多编程人员学习C++总结经验为,有的觉得C++语言是一门独立的语言,并不是在C语言的基础上,可以直接学习C++不必先从C下手,下面把我的C++入门学习的经验给大家拿出来分享一下,希望能给大家带来有用的信息。
我想先说说C++入门学习吧,想必这个概念诸位都有所了解,在下多罗嗦几句再说一下:所谓库,就是许多程序代码的集合:编程的时候,会有许多常用的功能,如果每个用到这些功能的程序都要从头写一遍,则会出现无谓地重复劳动;因此人们把这些常用的功能编写好,并按一定的逻辑关系组织、封装起来,便于编程时直接调用,就成为了库。
库中的程序模块是怎么放置的呢?嗯,首先,我们很自然会想到把那些常用的功能封装成一个个相应的函数,这样程序要用到这些功能的时候,我们就调用相应的函数。这些函数组成的库自然可以叫做函数库,显然函数库的思想是面向过程的;
其次,我们也可以把要实现的任务封装成一个个类(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是一个相当好(而且大概也是最权威)的资料集。
首先重复一句Bjarne的话:“我们的系统已经是极度复杂的了,为了避开C++入门学习的复杂性而干脆不用C++(Linus的做法),无异于因噎废食。”在所有可用C和C++的领域,C++都是比C更好的语言。当我说“更好的”时候,我说的是C++拥有比C更安全的类型检查、更好的抽象机制、更优秀的库。