初学者强力推荐,小小程序员对C++概述:从C到C++

C++读作”C加加“,是”C Plus Plus“的简称。顾名思义,C++是在C语言的基础上增加新特性,玩出了新花样,所以叫”C Plus Plus“,就像iPhone 6S和iPhone 6、Win10和Win7的关系。

从C到C++

C语言是1972年由美国贝尔实验室研制成功的,在当时算是高级语言,它的很多新特性都让汇编程序员羡慕不已,就像今天的Go语言,刚出生就受到追捧。C语言也是”时髦“的语言,后来的很多软件都用C语言开发,包括Windows、Linux等。

但是随着计算机性能的飞速提高,硬件配置与几十年前已有天壤之别,软件规模也不断增大,很多软件的体积都超过 1G,例如PhotoShop、Visual Studio等,用C语言开发这些软件就显得非常吃力了,这时候C++就应运而生了。

在C语言中,我们会把重复使用或具有某项功能的代码封装成一个函数,将具有相似功能的函数放在一个源文件;调用函数时,引入对应的头文件就可以。

而在C++中,多了一层封装,就是类(Class)。类由一组相关联的函数、变量组成。你可以将一个类或多个类放在一个源文件,使用时引入对应的类就可以。

不要小看这一层封装,它让C++多了很多特性,成为面向对象的编程语言。

面向对象编程(ObjectOriented Programming,OOP)

类是一个通用的概念,C++、C#、Java、PHP等很多编程语言中都有类,你可以通过类来创建对象(Object)。

各位读者先不要深究面向对象的概念,目前只需要记住,支持类和对象的编程语言就是面向对象的,而像C语言,只能把代码封装到函数,没有类,所以是面向过程的。所谓面向过程,就是通过不断地调用函数来实现预期的功能。

图1:C语言中项目的组织方式

图2:C++中项目的组织方式

面向对象编程在代码执行效率上绝对没有任何优势,它的主要目的是方便程序员组织和管理代码,快速梳理编程思路,带来编程思想上的革新。

面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。

如果你希望开发一个贪吃蛇游戏,类和对象或许是多余的,几个函数就可以搞定;但如果开发一款大型游戏,那你绝对会使用C++。

C++学习交流

不定时分享干货,包括2018最新的C/C++企业案例学习资料和零基础入门教程,欢迎自学的小白和大神一起来学习交流。

C++代码

C语言源文件后缀为.c,C++源文件后缀为.cpp。C/C++使用相同的编译器,Windows下一般是微软的 cl.exe,Linux下一般是 GCC。

很多C语言初学者创建源文件时使用的后缀为 .cpp(或许你并没有注意),也完全没有问题,编译、链接、运行都顺利通过。这是因为C++几乎完全兼容C语言,它们类似子集(C语言)和超集(C++)的概念。也就是说,仅仅给你一段C语言代码,你将无法确定它到底是C语言代码还是C++代码。

不过C语言和C++的编译方式不同,.c源文件会按照C语言的方式编译,.cpp源文件会按照C++的方式编译。后续我们会在编译原理中讲解。

转载请注明:《初学者强力推荐,小小程序员对C++概述:从C到C++