【C++基础】1.认识C++——《跟老吕学C++编程语言》

【C++基础】1.认识C++——《跟老吕学C++编程语言》

  • 认识C++
    • C++简介
    • C++发展历程
    • C++四大特性
      • 支持数据封装和数据隐藏
      • 抽象
      • 支持继承和重用
      • 支持多态性
    • C++语言工作原理
    • C++语言标准
    • C++标准库

【C++基础】1.认识C++——《跟老吕学C++编程语言》

认识C++

C++简介


C++,全称是C Plus Plus。老吕比较喜欢叫它C加加。

  • C++是C语言的继承;
  • C++是是编译式的;
  • C++是通用的、大小写敏感的、不规则的编程语言;
  • C++是一种中级语言,它综合了高级语言和低级语言的特点;
  • C++是一种静态数据类型检查的;
  • C++支持多范型的通用程序设计语言;
  • C++能够支持过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等多种程序设计风格;
  • C++的编程领域众广,几乎可以创建任何类型的程序:游戏、设备驱动程序、HPC、云、桌面、嵌入式和移动应用等,甚至用于其他编程语言的库和编译器也使用C++编写;
  • C++拥有计算机高效运行的实用性特征;
  • C++提高了大规模程序的编程质量与程序设计语言的问题描述能力。



【C++基础】1.认识C++——《跟老吕学C++编程语言》

C++发展历程


1970年,AT&T贝尔实验室的工作人员D.Ritchie和K.Thompson共同研发了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,实际上C语言是UNIX的“副产品”。

1971年,瑞士联邦技术学院N.Wirth教授发明了第一个结构化的编程语言Pascal。

20世纪70年代中期,本贾尼·斯特劳斯特卢普在剑桥大学计算机中心工作。斯特劳斯特卢普希望开发一个既要编程简单、正确可靠,又要运行高效、可移植的计算机程序设计语言。而以C语言为背景,以Simula思想为基础的语言,正好符合斯特劳斯特卢普的初衷和设想。

1979年,本贾尼·斯特劳斯特卢普到了AT&T贝尔实验室,开始从事将C改良为带类的C(C with classes)的工作。、1983年,该语言被正式命名为C++。

1985年、1990年和1994年,C++先后进行3次主要修订。
C++的标准化工作于1989年开始 ,并成立了一个ANSI和ISO(International Standards Organization)国际标准化组织的联合标准化委员会。

1994年1月25曰,联合标准化委员会提出了第一个标准化草案。在该草案中,委员会在保持斯特劳斯特卢普最初定义的所有特征的同时,还增加了部分新特征。
在完成C++标准化的第一个草案后不久,亚历山大·斯特潘诺夫(Alexander Stepanov)创建了标准模板库(Standard Template Library,STL)。在通过了标准化第一个草案之后,联合标准化委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

1997年11月14日,联合标准化委员会通过了该标准的最终草案。

1998年,C++的ANSI/IS0标准被投入使用。



【C++基础】1.认识C++——《跟老吕学C++编程语言》

C++四大特性


支持数据封装和数据隐藏


封装----事物的封闭性

在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。



抽象


抽象性–物以类聚

C++抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。它是依赖于接口和实现分离的编程(设计)技术。C++类为数据抽象提供了可能,它们向外界提供了大量用于操作对象数据的公共方法,外界实际上并不清楚类的内部实现。抽象有两个重要的优势:类的内部受到保护,不会因无意的用户级错误导致对象状态受损;类实现可能随着时间的推移而发生变化,以便应对不断变化的需求,或者应对那些要求不改变用户级代码的错误报告。



支持继承和重用


继承----事物的相似性

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。



支持多态性


多态----事物的多样性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。

继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。



C++语言工作原理


C++语言的程序开发环境,为了方便测试,将调试环境做成了解释型。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。

开发C++应用程序,需要经过编写源程序、编译、连接程序生成可执行程序、运行程序四个步骤。生成程序是指将源码(C++语句)转换成一个可以运行的应用程序的过程。如果程序编写正确,那么通常只需按一个功能键,即可完成该过程。

第一步对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码(也称为目标码);如果该步骤成功执行,下一步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。C++库包含了执行某些常见任务的函数(“函数”是子程序的另一种称呼)。例如,一个C++库中包含标准的平方根函数sqrt,不必亲自计算平方根。C++库中还包含一些子程序,它们把数据发送到显示器,并知道如何读写硬盘上的数据文件。



C++语言标准


自C++的ANSI/IS0标准投用以来,共进行过5次更新。

发布时间通称备注
2020C++20第六个C++标准
2017C++17第五个C++标准
2017coroutines TS协程库扩展
2017ranges TS提供范围机制
2017library fundamentals TS标准库扩展
2016concurrency TS用于并发计算的扩展
2015concepts TS概念库,用于优化编译期信息
2015TM TS事务性内存操作
2015parallelism TS用于并行计算的扩展
2015filesystem TS文件系统
2014C++14第四个C++标准
2011-十进制浮点数扩展
2011C++11第三个C++标准
2010-数学函数扩展
2007C++TR1C++技术报告:库扩展
2006-C++性能技术报告
2003C++03第二个C++标准
1998C++98第一个C++标准



C++标准库


标准的 C++ 由三个重要部分组成:

  • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
  • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
  • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。




👨‍💻博主Python老吕说:如果您觉得本文有帮助,辛苦您🙏帮忙点赞、收藏、评论,您的举手之劳将对我提供了无限的写作动力!🤞


🔥精品付费专栏:(暂时免费,尽快订阅、收藏哦)🔥
《跟老吕学Python编程》
《跟老吕学Python编程·附录资料》

🌐前端:
《跟老吕学HTML》
《XHTML》
《CSS》
《JavaScript》
《Vue》

💻后端:
《跟老吕学C语言》
《C++》
《Java》
《R》
《Ruby》
《PHP》
《Go》
《C#》
《Swift》
《Python》

💾数据库:
《跟老吕学Oracle语言》
《MYSQL》
《SQL》
《PostgreSQL》
《MongoDB》


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/537542.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux信号机制(二)

目录 一、信号的阻塞 二、信号集操作函数 三、sigprocmask函数 四、pause函数 五、sigsuspend函数 一、信号的阻塞 有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数。…

Stable Diffusion WebUI 1.8.0来了

上周 Stable Diffusion WebUI 发布了 1.8.0 版本,更新内容比较多,据说显存使用有了大幅的下降,这几天我也找时间把 AutoDL 镜像的版本做了个升级,有兴趣的同学可以去体验下新版本了。 这里分享下其中几个我认为比较重要的更新。 …

MinIO权限提升漏洞CVE-2024-24747详细解决办法

漏洞名称: MinIO权限提升漏洞(CVE-2024-24747) 漏洞简介 2024年2月2日,深瞳漏洞实验室监测到一则MinIO 存在权限提升漏洞的信息,漏洞编号:CVE-2024-24747,漏洞威胁等级:高危。 该漏洞是由于用户创建的访…

打卡学习kubernetes——kubernetes架构原理

接上一篇的内容,除了核心组件,还有一些推荐的Add-ons: kube-dns 负责为整个集群提供DNS服务Ingress Controller 为服务提供外网入口Heapster 提供资源监控(没用过这个,但是用过grafana,很方便&#xf…

【已解决】由于启动计算机时出现了页面文件配置問題,Windows在你的计算机 人上创建了一个临时页面文件

最近装了系统,重启电脑时候会有这个问题: 解决方法: 设置虚拟内存的步骤如下: 第一步:用鼠标右键单击桌面上的“计算机”图标,在弹出的快捷菜单中选择“属性”。 第二步:单击系统属性窗口里的“…

Unix环境高级编程-学习-05-TCP/IP协议与套接字

目录 一、概念 二、TCP/IP参考模型 三、客户端和服务端使用TCP通信过程 1、同一以太网下 四、函数介绍 1、socket (1)声明 (2)作用 (3)参数 (4)返回值 (5&…

【Python/crawl】如何使用Python爬虫将一系列网页上的同类图片下载到本地

【需求】 从网页https://www.zhainq.com/%e7%be%8e%e5%a5%b3%e5%86%99%e7%9c%9f%e6%9c%ba%e6%9e%84/%e6%97%a5%e6%9c%ac%e7%be%8e%e5%a5%b3%e5%86%99%e7%9c%9f/109012.html 开始,有十七页,每页都有大漂亮“小濑田麻由”的若干图片,想要将其…

HIVE伪分布安装

引言 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,类似于RDBMS(关系型数据库,如MySQL、Oracle、PgSQL),并提供类SQL的查询功能。 实验准备 1.搭建好伪分布安装模式的Hadoop的虚拟机,并配置了Linux网络。(可看我前面发布的文章) 2.apache…

使用 java 发送邮件,附件展示乱码,不是展示自己定义的文件名

刚开始我写的代码是这样的 private Mail initMail(List<Map<String , String>> writeInFieldsList , List<Map<String , ?>> allFieldsList , String smallCity) throws Exception {byte[] excelBytes CustomExcelUtils.trafficSignalWarning(writeI…

《IAB视频广告标准:综合指南(2022)》之概述篇 - 我为什么要翻译介绍美国人工智能科技公司IAB 系列(2)

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒体…

完整的通过git命令框和windows窗口将本地文件上传到gitee远程仓库流程步骤

1.下载git 这个网站搜索git官方&#xff0c;去下载就行了 2.打开git安装后的Git Bash命令框 3.在Git Bash命令框设置一下要远程链接的gitee账号 git config --global user.name “名字”Git config --global user.email “邮箱” 4.查看一下账号设置 git config --global -…

Android14之解决报错:No module named sepolgen(一百九十二)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…