0、C++预备知识

这篇具有很好参考价值的文章主要介绍了0、C++预备知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++与C语言

C++是一种计算机高级程序设计语言,C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计。

C++对比C语言的特点:

  1. 与C语言的兼容性。C++与C语言完全兼容,c语言的绝大多数内容可以直接用于C++的程序设计。用C语言编写的程序可以不加修改的用于C++。
  2. 数据封装和数据隐藏。在C++中类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类,支持数据封装和数据隐藏。
  3. 支持继承和重用。在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效的组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂深入的开发。新定义的类为子类成为派生类,它可以从父类那里继承所有非私有的属性和方法作为自己的成员。

为什么要学习C++

  1. C++能提升性能。
  2. 编程语言的需求总结为四个:效率、灵活、抽象、生产力。C语言注重前两者,C++注重前三者,JAVA、.net这些注重后两者。
  3. C++应用范围广泛。

C++为什么难学

  1. C++支持的编程范式
    过程式:for/if
    数据抽象:封装、继承和多态
    基于对象:程序=对象+对象+对象+消息传递
    面对对象式
    函数式:递归方式进行编程
    泛型形式:程序=对象+对象+抽象行为。抽象行为能够施加在不同类型而又大相径庭的对象上。通用编程的思想
    模板元形式:模板元编程是指给出代码的产生规则,让编译器产生新代码实现我们预期的功能。这样的话,某些运行时工作被提前到了编译器来完成,从而增加了编译时间,但提高了运行效率,可以实现神奇的类型推导。
  2. 值语义与对象语义:值语义可以拷贝与赋值、对象语义不可进行拷贝和赋值。

c++值得学习的新特征

智能指针如shared_ptr/weak_ptr等;
rvalue reference;
unction/bind
lambda expression and closure

C++参考书籍

  1. c++ primer
  2. Effective C++
  3. C++编程规范
  4. 敏捷软件开发——原则、模式与实践
  5. 代码大全

开发工具

主流的有:GNU g++和微软的VS。在windows中开发的程序可以直接放在Lniux中运行。

可移植性和标准

可移植性:不同平台上编写的代码可否直接运行?
可移植性存在两个障碍:其中的一个是硬件;第二个障碍是语言上的差异(通过制订C++标准来消除)。
C++98、C++11(最新标准)

程序创建的技巧

程序运行大体如下:

  1. .使用文本编辑器编写程序,并将其保在到文件中,这个文件就是程序的源代码。
  2. 编译源代码。这意味着运行一个程序,将源代码翻译为主机使用的内部语言一一机器语言。 包含了翻译后的程序的文件就是程序的目标代码(object code ) 。 .obj
  3. 将目标代码与其他代码链接起来。链接指的是将目标代码同使用的函数的归标代码以及一些标准的启动代码(startup code) 组合起来, 生成程序的运行阶段版本。包含该最终产品的文件被称为可执行代码。
    0、C++预备知识,C++,c++,开发语言

编译和链接

创建好项目后,需要对程序进行编译和链接。IDE通常提供了多个菜单项,如Compile(编译)、Build(建立)、Make(生成)、Build All(全部建立)、Link(链接)、Execute(执行)、Run(运行)和Debug(调试),不过同一个IDE中,不一定包含所有这些选项。文章来源地址https://www.toymoban.com/news/detail-800819.html

  • Compile通常意味着对当前打开的文件中的代码进行编译。
  • Build和Make通常意味着编译项目中所有源代码文件中的代码。如果只有一个修改了则只编译这个文件。
  • Build All通常意味着重新编译所有的源代码文件。
  • Link意味着将编译后的源代码与所需的库代码组合起来。
  • Run和Execute意味着运行程序。
  • Debug意味着以步进方式执行程序。
  • 调试版本对比发布版包含额外的代码,会增大程序,降低执行速度,但可提供详细的调试信息。

到了这里,关于0、C++预备知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • c51单片机(预备知识)

            单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备(小键盘、LED显示器)。 0)  无源晶振:12MHZ 1) 振荡周期 :也称时钟周期,是指为单片机提供

    2024年02月08日
    浏览(78)
  • 动手学深度学习-预备知识-数据操作

    动手学深度学习,笔记 1.首先导入torch库,我们使用pytorch主要使用这个库的函数 张量表示一个由数值组成的数组,这个数组可能有多个维度。具有一个轴的张量对应数学上的向量(vector); 具有两个轴的张量对应数学上的矩阵(matrix);具有两个轴以上的张量没有特殊的数

    2024年02月05日
    浏览(37)
  • 电力系统知识预备及学习方向

    由于电源点与负荷中心多数处于不同地区,也无法大量储存,故其生产、输送、分配和消费都在同一时间内完成,并在同一地域内有机地组成一个整体,电能生产必须时刻保持与消费平衡。因此,电能的集中开发与分散使用,以及电能的连续供应与负荷的随机变化,就制约了

    2024年02月09日
    浏览(30)
  • 高等数学(预备知识之三角函数)

    正弦函数, 余弦函数, 正切函数都是 以角为自变量 , 以单位圆上的 坐标或坐标的比值为函数值 的函数, 我们将他们称为 三角函数 sin ⁡ sin sin α alpha α = y cos ⁡ cos cos α alpha α = x tan ⁡ tan tan α alpha α = y x frac{y}{x} x y ​ 正弦函数: y= sin ⁡ sin sin x quad x ∈ in ∈ R 余弦函数

    2024年02月13日
    浏览(28)
  • 高等数学(预备知识之反函数)

    正弦函数 y = sin ⁡ x y=sin x y = sin x quad ( x ∈ [ − π 2 , π 2 ] xin[-frac{π}{2},frac{π}{2}] x ∈ [ − 2 π ​ , 2 π ​ ] )的反函数叫 反正弦函数 记作 y = arcsin ⁡ x y=arcsin x y = arcsin x , ( x ∈ [ − 1 , 1 ] xin[-1,1] x ∈ [ − 1 , 1 ] , y ∈ [ − π 2 , π 2 ] yin[-frac{π}{2},frac{π}{2}] y ∈ [ − 2 π

    2024年02月07日
    浏览(42)
  • Cisco 路由器配置预备知识分享

    一、设置方式 一般来说,可以用5种方式来设置路由器: 1.Console口接终端或运行终端仿真软件的微机; 2.AUX口接MODEM,通过电话线与远方的终端或运行终端仿真软件的微机相连; 3.通过Ethernet上的TFTP服务器; 4.通过Ethernet上的TELNET程序; 5.通过Ethernet上的SNMP网管工作站。 但路

    2024年02月06日
    浏览(32)
  • Hperledger Fabric入门课程2 ——预备知识

    购买专栏前请认真阅读:《Fabric项目学习笔记》专栏介绍 新手在学习Fabric时,看到密密麻麻的命令与名词,经常会感觉无从下手,本节为大家梳理一下在学习Fabric前应该了解的知识。 推荐肖臻老师的课: https://www.bilibili.com/video/BV1Vt411X7JF 简单入门可以看下狂神说的课与笔记

    2023年04月20日
    浏览(19)
  • 【深度学习】S1 预备知识 P1 张量

    张量(Tensor)是深度学习中用于表示和处理多维数据的数据结构。张量与 Numpy 类似,但是不同的是深度学习框架专门为张量提供了丰富的操作API,包括创建张量、数据转换、数学运算、索引和切片等,使张量可以使用 GPU 加速,大大提高处理大量数据时的计算速度;同时提供

    2024年02月21日
    浏览(25)
  • 深度学习预备知识-数据存储、数据预处理

    为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。 通常,我们需要做两件重要的事: (1)获取数据; (2)将数据读入计算机后对其进行处理。 如果没有某种方法来存储数据,那么获取数据是没有意义的。 首先,我们介绍n维数组,也称为 张量 (tensor)

    2024年01月17日
    浏览(33)
  • 【Linux学习】信号——预备知识 | 信号产生 | 核心转储

    🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言: 你只管努力,剩下的交给时间! 从生活中入手,例如发令枪,闹钟,红绿灯等等,这些都是信号。信号必须都是 动态 的,像路标就不能称之为信号。 以红绿灯为例,一看到红绿灯我们就知道红灯行,绿灯停,我们不

    2023年04月11日
    浏览(23)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包