C++ 基础入门
前言
随着学习的深入,C++ 的学习越来越迫在眉睫。
虽然我在学习 Maya API 以及 Unreal 过程中已经写过不少的 C++ 代码。
但以前写 C++ 都是用 Python 的经验迁移过去使用的,很多 C++ 的特性都不懂,很多库也不怎么会用。
所以正因为如此,才希望自己可以深入学习好 C++
课程推荐
C++ MasterClass
在 youtube 上找到了一个非常棒的教程
Youtube地址(不完整): https://www.youtube.com/watch?v=8jLOx1hD3_o
udemy 完整版地址: https://www.udemy.com/course/the-modern-cpp-20-masterclass/
B站
https://www.bilibili.com/video/BV1Hr4y1H7wB
https://www.bilibili.com/video/BV1JY4y1Y7uZ
https://www.bilibili.com/video/BV1iA4y1X76r
https://www.bilibili.com/video/BV1A34y1e7KS
https://www.bilibili.com/video/BV1434y1e7N4
Github地址: https://github.com/rutura/The-C-20-Masterclass-Source-Code
教程足足有 30 小时长,而且还是 udemy 教程的阉割版本,不过里面有第一章会教导如何使用
MSVCgccclang三种 C++ 编译器构建环境。
我 fork 了他的仓库加上我自己的 VSCode 配置 仓库地址: https://github.com/FXTD-ODYSSEY/The-C-20-Masterclass-Source-Code
默认 tasks 是配置了三中不同编译的选项,如果注释掉两个的话,那就可以直接在 VScode 实现 ctrl+shift+b 实现编译并运行。
教程里面主要 IDE 环境是使用 VScode 搭建的,可能会有人困惑,why not VS。
我很久以前开发 Maya C++ 就是使用 VS 进行开发的,说实话,IDE 隐藏了太多细节,一旦出错,反而是无头苍蝇,无从查起。 知乎回答
当然也同其他回答说得也对,用什么工具都无所谓,关键是懂得 C++ 的整个编译流程。
The Cherno C++
https://www.youtube.com/watch?v=18c3MTX0PK0&list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb
https://www.bilibili.com/video/BV1gk4y1r7UH
游戏开发大佬推出的一系列编程课程。
parallel 101
后来非常偶然地,我翻到一个大佬 (小彭老师) 的课程
https://github.com/parallel101/course
https://www.bilibili.com/video/BV1fa411r7zp
这个课程用直播和录播的形式详细介绍了从 cmake 到 C++ 的使用。
而且老师年轻有为,能力很强,经验丰富。
原子之声
C++现代实用教程(一):基础主线(VSCODE) gitlab地址
C++现代实用教程(二):面向对象基础 gitlab地址
C++现代实用教程(三):面向对象之友元与继承 gitlab地址
C++现代实用教程(四):面向对象核心多态 gitlab地址
C++现代实用教程:智能指针 gitlab地址
C++现代实用教程: Namespace命名空间 gitlab地址
这位老师也很赞~
但是还没仔细看…
C++ 道法器术
https://www.bilibili.com/video/BV1pu411y7n1
https://www.bilibili.com/video/BV1RV4y1x7qH
C++ 是一门很复杂的语言,像我是从 Python 开始进阶编程的。
当我将 Python 很多用法摸透之后,进入到 Python 底层,发现 C++ 还很多底层的内容等待我去学习(:з」∠)
那上面的视频,比较系统地总结了 C++ 从入门到进阶的各个不同阶段地内容,学习 C++ 有很清晰的整体图谱。
当然视频里面其实是介绍作者推出的课程的~
个人剖析文章 01_C++ 道法器术.md
搭建运行环境
C++ 语言和 Python 运行方式有相当大的不同,
参考: https://smartkeyerror.com/Python-Virtual-Machine
编译 C++ 需要有 C++ 编译器来生成汇编代码(二进制机器码) ,不同的编译器有不同的优化策略,所以版本和编译器平台都会对生成的汇编有很大影响。
教程提供了 https://en.cppreference.com/w/cpp/compiler_support 这个网站。
可以看到不同平台编译器对各种 CPP 规范的支持情况,如果用了老版本就不能使用新版本的 C++ 写法
目前 C++ 也在不断演进,从古老的 C++98 到现在 C++11 C++14 C++17 C++20 以及后续即将推出的 C++23 C++26
目前主流编译器的最新版本都支持到 C++17 了。
编译器下载配置
市面上最主流的 C++ 编译器有
MSVCgccclang,其中MSVC是 windows 平台的,另外两个是可跨平台开发。
windows 下如何安装环境呢? 推荐使用 choco 进行安装
1  | Set-ExecutionPolicy Bypass -Scope... |