如何系统地学习 C++ 语言关于C++,有哪些你需要提前知道的知识?
Posted 一起学编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何系统地学习 C++ 语言关于C++,有哪些你需要提前知道的知识?相关的知识,希望对你有一定的参考价值。
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++也可以做到这一点,而且,在此基础上它支持高级功能,如类和面向对象,它允许程序员创建包含数据和功能的 "对象"。这种方法的优点是,软件对象比程序性指令执行得更快,更容易执行,而且面向对象的编程使代码更容易修改、维护和调试。
编译型语言和解释型语言
提起编程语言,就必须先要理解语言所属类型 。
编程语言可以分为编译型语言和解释型语言,下面分别解释一下。
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。比较有代表性的有C、C++等。
解释型语言:相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,程序在运行时才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低。比较有代表性的包括Java、Python、JavaScript等。
从入门到实战
因为C++很受欢迎,所以有很多资源可供初学者使用,包括在线教程、网站和书籍。
当决定学习C++或任何其他计算机语言时,你首先要清楚将它用于什么方向、什么岗位。
如果你从事机器学习、深度学习、数据分析这些偏重于算法和分析、对性能不敏感的岗位,你完全可以选择R或者Python这些语言替代。
但是,如果你从事游戏、系统等对性能有严格要求的岗位,C++则是首要的选择。
那么,你已经准备好进入到C++的学习了吗?明天的话,我们再正式分享其他知识!
-----------------------------------
博主的B站账号:C语言编程__Plus
以上是关于如何系统地学习 C++ 语言关于C++,有哪些你需要提前知道的知识?的主要内容,如果未能解决你的问题,请参考以下文章
如何系统地学习 C/C++ 语言有哪些C++开源项目可以学习呢?