C++ 语言系统学习指南:基础知识概览

发表时间: 2022-09-07 15:33

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++的学习了吗?明天的话,我们再正式分享其他知识!

-----------------------------------

为了帮助大家,轻松,高效学习C语言/C++,给大家分享我收集的资源,从最零基础开始的,帮助大家在学习C语言的道路上披荆斩棘!

编程学习书籍分享:

编程学习视频分享:

整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!

对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!