可以将 C++ 视为一个语言联邦,主要包括四大部分:C语言,面向对象,模板,STL

授人以鱼不如授人以渔

课程大纲

  1. C 语言基础
  2. 面向对象设计
  3. STL
  4. 阶段小项目
  5. Linux操作系统基本命令,计算机基础,数据结构,设计模式

培养利用计算机编程对现实世界的问题进行建模的能力

一. C++ 的历史

1.1 C 语言的历史:万物之源

C 语言,由美国贝尔实验室的 D.M.Ritchie 于 1972 年推出用于构建 Unix 操作系统,因为其由专业程序员设计,其最终结果堪称完美。C语言的设计前后连贯,且支持模块化设计,成为短小精干、高效实用、功能强大的编程语言。

C 的用途

  1. 嵌入式,硬件开发
  2. 操作系统:Unix、Linux
  3. 编译器
  4. 软件开发:Nginx反向代理服务器,Redis数据库

然而 C 语言是一个面向过程编程的编程语言,不支持面向对象。面向对象编程相比面向过程可以更好的抽象现实世界

1.2 C++ 横空出世

与 C 语言一样,C++ 也是在美国贝尔实验室诞生的,于 20 世纪 80 年代由 Bjarne Stroustrup 开发。C++ 有极高的性能与运行效率,仅次于 C 语言与汇编语言,又有极高的对现实世界的抽象能力,普遍用在需要极高性能和控制性的领域。

C++的用途

  1. 游戏领域还是 C++ 天下,C++ 一直以来都是编写游戏引擎的首选语言,而且几乎是唯一语言
  2. 高性能服务器开发
  3. 网络安全领域
  4. 大量的嵌入式应用多是 C 做底层,C++做上层。

C++ 博大精深,没有任何一个人敢说精通这门语言,在学习这门语言的时候,切记切记不要陷入各种语法特性的泥潭之中,要学会做减法,从整个语法特性的全集中,抽出一部分子集去使用解决问题,限制使用其它的语法特性。

二. Hello , world

  1. 创建文件
  2. 编写代码
  3. 运行程序

文件类型

  1. .c —> C语言的源文件
  2. .cpp —> C++的源文件
  3. .h —> 头文件

Vim

Vim 是一个高度可定制的终端文本编辑器

vim 有三个模式:一般模式,编辑模式,命令模式

一般模式

我们使用 Vim 打开一个文件,默认进入一般模式,在这个模式下,有以下几个常用命令

  1. dd —> 删除光标所在行,前面可加数字如【3dd】表示删除 3 行
  2. yy —> 复制光标所在行,前面可加数字如【3yy】表示复制 3 行
  3. p —> 粘贴,从光标的下一行开始粘贴
  4. u —> 撤销

编辑模式

  1. 在一般模式下,输入 i 即可进入编辑模式,可以输入和编辑文本
  2. 按下左上角 Esc 键可从编辑模式切换到一般模式

命令模式

输入英文输入法中的 : 即可进入命令模式,可在 : 后输入命令,有以下常用命令

  1. q —> 不保存并退出
  2. wq —> 保存并退出

第一个 C 语言程序

//标准(std)输入(i)输出(o)
#include <stdio.h>                  

// main 函数,程序的入口同时也是程序的出口,有且只能有一个 main 函数
// void 表示这个函数没有任何的输出
int main(void)
{
    // \n 是换行的意思
    printf("hello , world\n");
    return 0;
}

三. Linux 基础操作

列出当前目录下有哪些文件

ls

切换目录

cd

创建目录

mkdir

删除文件

# 删除一个文件
rm -i 【文件名】

# 删除一个目录
rm -r 【文件夹】

改变文件名

mv 原路径 目标路径

两种特殊的目录

./      # 当前目录

../     # 上级目录

清理屏幕

clear

四. 作业

  1. 查阅资料,有哪些编译型语言,有哪些脚本语言,编译型语言和脚本语言的区别是什么?
  2. 查阅资料,什么是面向过程编程,什么是面向对象编程,他们的区别是什么?
  3. 熟悉 Vim 的操作,记住一些常用的命令即可。在 Vim 上利用 C/C++ 编写打印 “hello , world” 的程序。
  4. 下载一个 Markdown 编辑器(比如 Obsidian、Marktext)在 Windows 操作系统,熟悉 Markdown 语法,适应用 Markdown 编辑器记录电子笔记,[1],[2],[3] 作业以及后续作业均以 Markdown 电子笔记的形式提交。

五. 扩展

  1. 电影《模仿游戏》,了解计算机之父图灵的传奇一生
  2. 我的个人博客 jlovex.top,关注一下,后续讲课的讲义都会放在我的个人博客上