C++入门学习笔记总结之谈

开发 后端
下面着重讲述C++入门学习时碰到的相关难题和问题,以及学习C++的技巧,如何更好的进行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更安全的类型检查、更好的抽象机制、更优秀的库。

当然,凡事都有例外,如果你做的项目1)不大。2)编码中用不到什么抽象机制,甚至ADT(抽象数据类型,例如std::complex这种不含多态和继承的)也用不到,RAII也用不到,异常也用不到。3)你连基础库(如,简化资源管理的智能指针、智能容器)都用不着。那么也许你用C的确没问题;所以如果你的情况如此,不用和我争论,因为我无法反驳你。我们这里说的领域大致是Bjarne在“C++应用列表”里面列出来的那些地方。

底线是:如果把C++中的诸多不必要的复杂性去掉,留下那些本质的,重要的语言特性,简化语言模型,消除历史包袱。即便是C++的反对者也许也很难找到理由说“我还是不用C++”。在我看来,一个真正从实践意义上理性反对使用C++入门学习的人只有一个理由:C++的复杂性带来的混乱抵消乃至超过了C++的抽象机制和库(在他的特定项目中)带来的好处。

【编辑推荐】

  1. C与C++中标准输入实现方式上的一点区别
  2. C++编译器如何对Const常量进行分配存储空间
  3. C++类库设计的基本构思与方法
  4. 玩转C++语言的几种方法
  5. 如何更好的进行C++代码编制
责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-01-18 10:53:26

2010-01-21 18:00:59

C++语言

2010-01-27 16:52:31

C++语言学习

2010-01-25 11:21:01

C++语法

2010-01-27 15:54:49

C++实现程序

2010-01-14 17:02:10

学习C++

2011-07-14 10:12:50

C++

2010-01-15 14:52:33

Visual C++

2010-02-07 15:12:24

学习Android

2010-02-22 09:43:42

学习Python语言

2010-02-02 13:37:12

如何学习Python

2010-01-15 14:59:54

C++标准程序库

2010-01-15 16:37:28

Visual C++

2010-01-13 11:10:17

C++库函数

2010-02-03 15:52:02

Python学习研究

2010-02-06 13:36:57

学习Android程序

2010-01-25 14:31:07

C++类

2009-08-13 18:21:52

C#学习笔记

2011-04-19 17:44:02

C++

2011-04-19 17:36:12

C++
点赞
收藏

51CTO技术栈公众号