🔷 第一章 初识C++
📄 一句话概括

C++ 是一门编译型、静态类型的编程语言,出身是"C 语言加上类",特点是又快又能管大事——所以它蹲在你电脑里最讲究效率的地方:操作系统内核、浏览器、游戏引擎、AutoCAD 这类大型软件,还有嵌入式设备与金融后台。零基础学它的理由不是"时髦",而是它规矩严、看得见底层:学会 C++ 再学其他语言会轻松很多,反过来则处处别扭。

一、C++ 到底是什么

先把三个标签讲清楚:

一句话:C++ = C 的性能底子 + 面向对象与泛型的组织能力。

二、学它能干什么:六个常出没的地方

领域 例子 为什么用 C++
操作系统与驱动 Windows 内核、各类硬件驱动 直接操作内存与硬件,快
浏览器与办公软件 Chrome、WPS 的核心 复杂又要求快,规模大
游戏引擎 虚幻引擎、3A 大作 每秒 60 帧,每毫秒都要抢
嵌入式与硬件 打印机、路由器、汽车电控 内存只有几 MB,得省着用
桌面软件 AutoCAD、Photoshop 处理大图纸大图,卡不得
金融与后台 高频交易、大厂核心服务 快一毫秒就是钱

注意最后两行:你工作的亮化工程图纸,AutoCAD 底层就是 C++ 写的——你早就是 C++ 的用户,只是现在要当它的作者了。

三、零基础为什么先学 C++

常见的质疑是"C++ 太难,不该先学 Python 吗"。教材选 C++ 先讲,理由站得住:

  1. 它逼你认识真相——内存、类型、编译过程都摆在明面上。先学 C++ 再学 Python,会觉得"原来那些省事的写法背后是这个";先学 Python 再看 C++,则常年在猜"为什么这里要写类型"
  2. 它的规矩是通用的——大括号、分号、类型声明、函数结构,Java/C#/JavaScript 都借了它的骨架(Java 课里那些 {} 就是同源)
  3. 学会了不容易忘——难度本身是记忆的锚

代价也要说清:前三章会觉得"写个 Hello World 好麻烦"。这正常——麻烦的部分正是 C++ 把控制权交给你的部分(1.1.3 细说)。

四、本课的学习地图

五、动手 Demo:给环境搭桥前的探路

装 Dev-C++ 之前,先看看本机有没有现成的编译器(有的话将来还能用命令行验证):

Get-Command g++, gcc, cl -ErrorAction SilentlyContinue | Select-Object Name, Source

看到什么算成功:如果什么都不显示——正常,说明本机干净,等 1.2.2 装好 Dev-C++(它自带 MinGW 的 g++);如果列出了路径,说明你以前装过编译器,也可以留着备用。

顺手看一下 C++ 的脚印——Windows 里到处是 C++ 写的运行库:

Get-ChildItem C:\Windows\System32 -Filter "vcruntime*.dll" | Select-Object Name

看到什么算成功:列出 vcruntime140.dll 之类的文件。这些就是无数 C++ 程序公用的"零件箱"——你以后编译出的程序,也依赖它们运行。

30 秒实验:打开任务管理器,看看你正在用的浏览器、看图软件、输入法——猜猜哪几个是 C++ 写的?(提示:凡是"大、快、吃内存"的桌面软件,多半是。)

六、常见误区

  1. "C++ 太难,零基础该先学 Python"——先学什么看目的:想快速出个小工具,Python 更顺;想打牢底层地基、以后看什么都懂,C++ 更值。代价是前期慢(写个 Hello World 都要配环境),这是投资不是浪费
  2. "C++ 是过时的老语言"——操作系统、游戏引擎、浏览器核心至今仍靠它;标准每三年还在更新(1.1.1),它是"老兵"不是"古董"
  3. "学会 C++ 就等于会编程"——语言只是一半。调试、读报错、用工具、查文档同样是必修课,本课每节都有动手环节就是为了练这些
  4. "C++ 只能写底层,做不了界面"——桌面软件、游戏、工程软件(AutoCAD 正是)都有它的身影;只是做网站后端这类活儿通常有更省力的选择(1.1.3 的判断口诀)
自测三问(点开对答案) 1. C++ 的三个基本标签?——编译型(先编译成本机可执行文件)、静态类型(变量声明时就定类型)、C 的超集(C 的全部能力+面向对象)。 2. C++ 为什么快?——编译后直接是本机机器码,中间没有虚拟机/解释器;并且允许直接操作内存与硬件。 3. 零基础先学 C++ 的理由?——底层机制摆在明面上(内存、类型、编译),学会后学其他语言更容易;语法骨架是 Java/C#/JS 的共同祖先;代价是前期显得"麻烦"。

相关笔记