C++概述:从C到C++

C++概述:从C到C++
2021年08月12日11:23:06 0 468

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++多了很多特性,成为面向对象的编程语言。

面向对象编程(Object Oriented Programming,OOP)

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

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

C++概述:从C到C++

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

C++概述:从C到C++

图2: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++的方式编译。后续我们会在编译原理中讲解。

 

打赏 点赞(0)
weinxin
投诉建议
文章名+链接地址,发送到此微信:tourism52
css,篇四 ,文本,样式 菜鸟教程

css篇四 文本样式(上)

        通过前面几篇文章的介绍,相信大家对css层叠样式表已经有了大概的了解和认识了,最起码要知道它到底是做什么用的。也就是所谓的应...
关于,css 菜鸟教程

关于CSS

什么是 CSS?·        CSS 指的是层叠样式表* (Cascading Style Sheets)·    ...
CSS,选择器,如此,之多,你,了解,多少,CSS,选择器, 菜鸟教程

CSS选择器如此之多,你了解多少?

CSS选择器如此之多,你了解多少? 前言 css选择器非常之多,常见的如class选择器,id选择器,标签选择器等等。每个的用法都有所区别,虽然很多都能到达同样的效果,但还是有一些...
一网打尽,harmonyos,分布式,应用开发 菜鸟教程

一网打尽HarmonyOS分布式应用开发

在 HarmonyOS分布式开发中,应用程序框架是基础设施。随着越来越多设备的智能化,在多设备场景下,应用开发面临以下挑战。来自 Pexels01多设备的形态差异多样化的屏幕适配:...
javascript,数据,类型 菜鸟教程

JavaScript 数据类型

JavaScript 数据类型值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol...

评论列表 共有 0 条评论

暂无评论