【零基础学习C++】欢迎来到C++的世界

这篇具有很好参考价值的文章主要介绍了【零基础学习C++】欢迎来到C++的世界。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人主页:【😊个人主页】
系列专栏:【❤️系列专栏】



前言

C++是一种计算机高级程序设计语言, 由C语言扩展升级而产生 , 最早于1979年由本贾尼·斯特劳斯特卢普在AT&T贝尔工作室研发。

C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计。
C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。


C++(The C++ Programming Language/c plus plus)

发展历程

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的"副产品"。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。
1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。
20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。
在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。
委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。


语言标准

  1. C++98标准
    C++标准第一版,1998年发布。正式名称为ISO/IEC 14882:1998。
  2. C++03标准
    C++标准第二版,2003年发布。正式名称为ISO/IEC 14882:2003[5] 。
  3. C++11标准
    C++标准第三版,2011年8月12日发布。正式名称为ISO/IEC 14882:2011[6] 。
    C++11对容器类的方法做了三项主要修改。
    首先,新增的右值引用使得能够给容器提供移动语义。其次,由于新增了模板类initilizer_list,因此新增了将initilizer_list作为参数的构造函数和赋值运算符。第三,新增的可变参数模板(variadic template)和函数参数包(parameter pack)使得可以提供就地创建(emplacement)方法。
  4. C++14标准
    C++标准第四版,2014年8月18日发布。正式名称为ISO/IEC 14882:2014[8]。
    C++14是C++11的增量更新,主要是支持普通函数的返回类型推演,泛型 lambda,扩展的 lambda 捕获,对 constexpr 函数限制的修订,constexpr变量模板化等
  5. C++17标准
    C++标准第五版,C++17 是继 C++14 之后,C++ 编程语言 ISO/IEC 标准的下一次修订的非正式名称。而就在2017年12月5日,ISO C++ 委员会正式发布了 C++ 17 标准,官方名称为 ISO/IEC 14882:2017。

语言特点

支持数据封装和数据隐藏

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

支持继承和重用

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

支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。
继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。文章来源地址https://www.toymoban.com/news/detail-472443.html

到了这里,关于【零基础学习C++】欢迎来到C++的世界的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 欢迎来到IT时代----盘点曾经爆火全网的计算机电影

    计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,这些电影不仅带我们穿越到科技的前沿,还揭示了计算机科学背后的故事和挑战。

    2024年02月21日
    浏览(24)
  • 【C→C++】打开C++世界的大门(C++基础入门,看这一篇就够了)

    这篇文章开始,我们正式进入C++的学习。 什么是C++ C语言是结构化和模块化的语言,适合处理较小规模的程序。 对于复杂的问题,规模较大的程序,需要高度的抽象和建模,C语言则不合适。 为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对

    2024年02月07日
    浏览(28)
  • Js水几个基础知识点:数组的操作,字符串和数组之间的互转,持续补充,欢迎关注

    一、插入 / 删除元素: 我们就不从创建开始讲了,那个太基础了,js创建数组一般都直接let arr = […,…,…],有部分仁兄喜欢new Array(…, …, …),这样看起来可能高级点,结果是一样的哈。 这里我们直接来讨论插入元素: 1、在末尾插入 / 删除元素(push / pop,操作原数组)

    2024年02月09日
    浏览(32)
  • C++ 基础学习5

    参考: https://blog.csdn.net/u013834525/article/details/104047635 https://zhuanlan.zhihu.com/p/610294692 在大多数情况下,emplace_back比push_back更高效,因为它可以避免不必要的拷贝和移动操作。emplace_back会在vector的末尾直接构造一个新元素,而push_back则是先创建一个元素,然后再将其拷贝或移动到

    2024年02月06日
    浏览(14)
  • C++学习基础版(一)

    目录 一、C++入门 1、C和C++的区别 2、解读C++程序 3、命名空间 4、输入输出 (1)cout输出流 (2)endl操纵符 (3)cin输入流 二、C++表达式和控制语句 1、数据机构 特别:布尔类型bool 2、算数运算符 练习一:拆分位数 练习二:分段函数求值 3、bool类型 4、C++自增++和自减--运算符

    2024年03月18日
    浏览(22)
  • 【零基础学习C++】如何写一个C++类?

    个人主页:【😊个人主页】 系列专栏:【❤️系列专栏:零基础学习C++】 类是对现实生活中一类具有共同特征的事物的抽象 类的内部封装了属性和方法,用于操作自身的成员。类是对某种对象的定义,具有行为(behavior),它描述一个对象能够做什么以及做的方法(method),

    2024年02月11日
    浏览(18)
  • 【C++】打开C++大门,踏入C++世界

      🧑‍🎓 个人主页:简 料   🏆 所属专栏:C++   🏆 个人社区:越努力越幸运社区   🏆 简       介: 简料简料,简单有料~在校大学生一枚,专注C/C++/GO的干货分享,立志成为您的好帮手 ~ C/C++学习路线 (点击解锁) ❤️ C语言 ❤️ 初阶数据结构与算法 ❤️ C++ ❤️

    2024年02月03日
    浏览(23)
  • 基于C++的QT基础教程学习笔记

    文章目录: 来源 教程社区  一:QT下载安装 二:注意事项 1.在哪里写程序 2.如何看手册 3.技巧 三:常用函数 1.窗口  2.相关  3.按钮 4.信号与槽函数  5.常用栏  菜单栏  工具栏  状态栏 6.铆接部件 7.文本编辑 8.背景图 9.UI界面设计 10.常用对话框 11.实现界面的跳转 12.常用控

    2024年02月16日
    浏览(24)
  • 学习C++这一篇就够了(基础篇)

    在C++中如何使用C语言打包好的库函数 空间分配原则是以“连续空闲”为核心的 运行某个程序后,一定会向内存申请空间 分配内存时,内存空间一定是连续的 分配出来的空间,是不确定位置的 单行注释: //一行的注释内容 多行注释:(模块化注释) /* 多行的注释内容 多行

    2024年02月12日
    浏览(33)
  • 【C++入门:C++世界的奇幻之旅】

    1. 什么是C++ 2. C++发展史 3. C++的重要性 4. C++ 5. 命名空间 6. C++输入输出 7. 缺省参数 8. 函数重载 9. 引用 10. 内联函数 11. auto(C++11) 12. 基于范围的for循环(C++11) 13. 指针空值---nullptr(C++11)05.          C语言是结构化和模块化的语言,适合处理较小规模的程序。对于

    2024年02月08日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包