0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从入门到实战,教你如何学习C++

C语言编程学习基地 来源:C语言编程学习基地 作者:C语言编程学习基地 2022-09-07 15:50 次阅读

C++是一种通用的、面向对象的编程语言,可用于开发操作系统、游戏、图形用户界面、后端以及高性能系统和应用程序。

所以,尽管Python、Go这些后起之秀近几年热度非常高,但是在很多领域还是无法撼动C++的地位。

今天,就从浅到深,从入门到实战,教你如何学习C++。

篇幅较长,先给出本文的目录:

C++简介

什么是C++?

为什么学C++?

C++的历史

C和C++的区别

编译型语言和解释型语言

从入门到实战

开发环境

C++入门

C++练习

C++实战

C++进阶

学习资源

书籍

视频课程

开源项目

下面,就正式开始本文的正式内容吧!因为时间问题,整个大纲暂时只写完了一半,所以今天只分享到开发环境为止,其他内容我们明天再给大家分享吧!

C++简介

什么是C++?

现如今,流行的编程语言非常多,Python、Go、Java、PHP、JavaScript等等,它们各有自己擅长的领域和方向。

而C++则在系统资源和内存控制更胜一筹,因此,在操作系统、图形图像、游戏、嵌入式这些对性能要求较高的领域,C++一直都具有不可替代的地位。

它可以用来开发在多个平台上运行的应用程序,如服务器、个人电脑、基于云的系统和移动设备。

为什么学C++?

如果你对计算机游戏、高端计算项目的软件工程、加密货币挖矿程序和开发移动设备的操作系统等领域感兴趣,学习C++则是必不可少的。

此外,相对于Go、Python这些更加高阶的编程语言,会涵盖更加全面的编程知识,也有助于学习者理解变量、函数、面向对象、指针、内存...这些在很多高阶语言中容易被忽略的概念和知识。

C++的历史

C++是由丹麦计算机科学家Bjarne Stroustrup(比雅尼·斯特劳斯特鲁普)创造、设计和开发的。

斯特鲁斯特鲁普想制造一种类似于C语言的灵活和动态的语言,但是,需要拥有更多的功能。

它最初被称为 "C with classes",在1983年被重新命名为C++,意思是 比C高一等。

国际标准化组织的C++联合技术委员会在1998年至2017年间对C++进行了五次升级。

一个新的版本,C++20,计划也在计划中将要发布。

C和C++的区别

C和C++有哪些区别?

这是在学习C或者C++时无法绕开的一个问题。

Jon Kalb(软件工程讲师、C++ Now和CppCon的主席)说,C++是C的进化。

虽然它们有一些相似之处,但现在两者有很大的不同。

虽然C语言被广泛使用,但Kalb说它并不像C++那样支持抽象、通用编程和面向对象编程。

在大型项目中,往往需要非常高层次的抽象,在这方面C++要远胜于C语言。

抽象层指的是观察或编程一个系统的复杂程度。低层次的抽象有更多的细节,而高层次的抽象可以包括整个系统。

C语言是一种程序性语言,它的代码由指令组成,直接告诉计算机或其组件按逻辑步骤完成一项任务。

C++也可以做到这一点,而且,在此基础上它支持高级功能,如类和面向对象,它允许程序员创建包含数据和功能的 "对象"。这种方法的优点是,软件对象比程序性指令执行得更快,更容易执行,而且面向对象的编程使代码更容易修改、维护和调试。

1a9d8296-2e80-11ed-ba43-dac502259ad0.png

编译型语言和解释型语言

提起编程语言,就必须先要理解语言所属类型 。

编程语言可以分为编译型语言和解释型语言,下面分别解释一下。

编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。比较有代表性的有C、C++等。

解释型语言:相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,程序在运行时才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低。比较有代表性的包括Java、Python、JavaScript等。

1acb651c-2e80-11ed-ba43-dac502259ad0.png

从入门到实战

因为C++很受欢迎,所以有很多资源可供初学者使用,包括在线教程、网站和书籍。

当决定学习C++或任何其他计算机语言时,你首先要清楚将它用于什么方向、什么岗位。

如果你从事机器学习深度学习、数据分析这些偏重于算法和分析、对性能不敏感的岗位,你完全可以选择R或者Python这些语言替代。

但是,如果你从事游戏、系统等对性能有严格要求的岗位,C++则是首要的选择。

那么,你已经准备好进入到C++的学习了吗?明天的话,我们再正式分享其他知识!

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1945

    浏览量

    34767
  • C++
    C++
    +关注

    关注

    22

    文章

    2109

    浏览量

    73685
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84741

原文标题:【如何系统地学习 C++ 语言】关于C++,有哪些你需要提前知道的知识?

文章出处:【微信号:cyuyanxuexi,微信公众号:C语言编程学习基地】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Air780E模组LuatOS开发实战 —— 手把手教你搞定数据打包解包

    本文要说的是低功耗4G模组Air780E的LuatOS开发实战,我将手把手教你搞定数据打包解包。
    的头像 发表于 12-03 11:17 186次阅读
    Air780E模组LuatOS开发<b class='flag-5'>实战</b> —— 手把手<b class='flag-5'>教你</b>搞定数据打包解包

    入门?毕设?竞赛?项目练手?STM32/嵌入式/物联网学习,有这几款开发板就够了!

    针对STM32单片机、嵌入式Linux、物联网初学者,我们精心梳理了入门项目进阶”完整学习路径,并配有详细的教程、视频讲解、源代码以及丰富的
    的头像 发表于 10-10 16:31 334次阅读
    <b class='flag-5'>入门</b>?毕设?竞赛?项目练手?STM32/嵌入式/物联网<b class='flag-5'>学习</b>,有这几款开发板就够了!

    【全新课程资料】正点原子《基于GD32 ARM32单片机项目实战入门》培训课程资料上线!

    软件使用、模块基础驱动和多个实战项目等等!全面讲解基础实战应用的全套内容,让大家学以致用! 基础部分:开发环境搭建、O新建工程、下载与
    发表于 09-24 18:06

    【全新课程资料】正点原子《ESP32基础及项目实战入门》培训课程资料上线!

    基础开发流程 三、课程特色 1、基础入门,循序渐进: C语言基础开始,逐步深入学习ESP32 IDF开发。首先搭建开发环境并熟悉工具使用,然后
    发表于 09-24 17:59

    【全新课程资料】正点原子《ESP32物联网项目实战》培训课程资料上线!

    完整的项目拆解,梳理整个项目的实现思路,由浅入深,硬件接线、基础原理和模块驱动入手,再深入物联网开发 2、教学内容模块化: 各个学习阶段的程序、硬件接线图和教学视频划分清晰,耦合少,学习
    发表于 09-24 17:05

    新书推荐 | TSMaster开发入门精通

    书名:TSMaster开发入门精通书号:9787302667193作者:杨金升刘矗刘功申定价:99.80元《CANoe开发入门
    的头像 发表于 08-30 12:37 548次阅读
    新书推荐 | TSMaster开发<b class='flag-5'>从</b><b class='flag-5'>入门</b><b class='flag-5'>到</b>精通

    李老师暑假班PCB设计实战01的进阶之路

    ,基于Cadence23.1这一业界领衔的EDA平台,为大家呈上了一场01的全流程设计实战教学。一个月前,我们并肩踏上了RK3566设计项目的征程,基础硬件电路的初步探索,
    的头像 发表于 08-30 12:20 663次阅读
    李老师暑假班PCB设计<b class='flag-5'>实战</b>:<b class='flag-5'>从</b>0<b class='flag-5'>到</b>1的进阶之路

    基于迅为RK3588【RKNPU2项目实战1】:YOLOV5实时目标分类

    [/url] 【RKNPU2 人工智能开发】 【AI深度学习推理加速器】——RKNPU2 入门实践(基于RK3588和RK3568) 【RKNPU2项目
    发表于 08-15 10:51

    手把手教你!STM32单片机入门指南:初级中级工程师的学习路线

    首选的跳板。为了帮助初学者们系统地学习STM32,我们提供了一条初级中级的学习路线,涵盖了基础知识
    的头像 发表于 07-22 14:38 3291次阅读
    手把手<b class='flag-5'>教你</b>!STM32单片机<b class='flag-5'>入门</b>指南:<b class='flag-5'>从</b>初级<b class='flag-5'>到</b>中级工程师的<b class='flag-5'>学习</b>路线

    C++中实现类似instanceof的方法

    C++有多态与继承,但是很多人开始学习C++,有时候会面临一个常见问题,就是如何向下转型,特别是不知道具体类型的时候,这个时候就希望C++ 可以向Java或者Python中有insta
    的头像 发表于 07-18 10:16 605次阅读
    <b class='flag-5'>C++</b>中实现类似instanceof的方法

    [RK3588入门精通]系列内容专栏目录及介绍

    [RK3588入门精通] 专栏目录及介绍
    的头像 发表于 04-10 10:40 736次阅读
    [RK3588<b class='flag-5'>从</b><b class='flag-5'>入门</b><b class='flag-5'>到</b>精通]系列内容专栏目录及介绍

    c语言,c++,java,python区别

    操作系统、嵌入式系统等对性能要求较高的场景。C语言的语法相对简单,学习曲线较平缓,也是学习其他高级语言的入门语言。 C++
    的头像 发表于 02-05 14:11 2428次阅读

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

    免费领取。 ▋常见问题 1.开发板适合0基础用户学吗? 答:适合的。这个板子配套的基础入门学习资料是非常丰富的,C语言Linux基础、数
    发表于 02-01 14:25

    C++在Linux内核开发中争议成熟

    Linux 内核邮件列表中一篇已有六年历史的老帖近日再次引发激烈讨论 —— 主题是建议将 Linux 内核的开发语言 C 转换为更现代的 C++
    的头像 发表于 01-31 14:11 640次阅读
    <b class='flag-5'>C++</b>在Linux内核开发中<b class='flag-5'>从</b>争议<b class='flag-5'>到</b>成熟

    C++简史:C++是如何开始的

    MISRA C++:2023,MISRA® C++ 标准的下一个版本,来了!为了帮助您做好准备,我们介绍了 Perforce 首席技术支持工程师 Frank van den Beuken 博士撰写
    的头像 发表于 01-11 09:00 614次阅读
    <b class='flag-5'>C++</b>简史:<b class='flag-5'>C++</b>是如何开始的