一、C++概述与环境搭建
大家好,欢迎来到《C++与Qt从入门到精通》的第一章。
说实话,每次带新人入门,我都要先问一句:你为什么要学C++?
有人是为了做游戏,有人是为了搞嵌入式,还有人纯粹是被学校逼的。但不管什么原因,C++这门语言,你一旦入了坑,就很难再出来。因为它太强了,也太复杂了。
这一章,我们不急着写代码。先聊聊C++是什么、能干什么,再把开发环境搭好。最后,写一个经典的Hello World,算是给这门课打个招呼。
1.1 C++的历史:从C到C++的进化
C++诞生于1979年。那时候,一个叫Bjarne Stroustrup的丹麦人,在贝尔实验室工作。他觉得C语言虽然好,但写大型项目太痛苦了——尤其是管理数据和函数的关系。
于是,他给C语言加了“类”的概念。最初叫“C with Classes”,后来改名为C++。那个“++”是C语言的自增运算符,意思是“C语言的升级版”。
我个人觉得,C++最牛的地方在于:它既保留了C语言的高性能,又引入了面向对象编程。你想想看,一个语言能同时搞定底层硬件和大型软件架构,这得多厉害。
| 年份 | 里程碑 |
|---|---|
| 1979 | Bjarne开始开发“C with Classes” |
| 1983 | 正式命名为C++ |
| 1998 | 第一个国际标准C++98发布 |
| 2011 | C++11发布,现代C++时代开启 |
| 2017 | C++17,进一步简化语法 |
| 2020 | C++20,模块、协程等重磅特性 |
嗯,这里要注意:C++11是一个分水岭。如果你还在写老式C++,赶紧升级。我在项目中遇到过不少同事,用着C++98的语法写新项目,结果代码又长又容易出bug。说白了,现代C++已经比过去优雅太多了。
1.2 C++的特点:为什么它至今仍是王者
C++有几个核心特点,我简单列一下:
- 高性能:直接操作内存,没有垃圾回收,运行效率极高。游戏引擎、高频交易系统都用它。
- 面向对象:封装、继承、多态,写大型项目时,代码组织起来很清晰。
- 泛型编程:模板机制,让你写一次代码,支持多种数据类型。
- 跨平台:Windows、Linux、macOS,甚至嵌入式设备,都能跑。
- 与C兼容:几乎所有的C代码都可以直接在C++里编译。
你可能会问:现在Python这么火,为什么还要学C++?
原因很简单:Python是“方便”,C++是“控制”。当你需要精确控制每一字节内存、每一个CPU周期时,C++是唯一的选择。我做过一个实时音频处理的项目,用Python延迟太高,换成C++后,延迟从50ms降到了5ms。这就是差距。
1.3 应用领域:C++都在哪里发光
C++的应用领域非常广。我随便举几个:
- 游戏开发:Unreal Engine、Unity底层都是C++。
- 桌面软件:Photoshop、Office、Chrome,核心都是C++。
- 嵌入式系统:智能手表、路由器、汽车ECU。
- 金融系统:高频交易、风险计算,速度就是金钱。
- Qt框架:跨平台GUI开发,我们这门课的核心。
说白了,只要你对性能有要求,C++就是首选。
1.4 安装开发环境:MinGW/GCC、VS Code或CLion
好,理论说完了,咱们开始动手。
要写C++代码,你需要两样东西:
- 编译器:把C++代码变成可执行文件。
- 编辑器/IDE:写代码的地方。
我推荐两种组合:
| 组合 | 适用人群 | 说明 |
|---|---|---|
| MinGW + VS Code | 初学者、轻量用户 | 免费、轻量、配置灵活 |
| CLion | 专业开发者 | 功能强大,但收费(学生免费) |
1.4.1 安装MinGW/GCC
MinGW是Windows上的GCC编译器。安装步骤如下:
- 访问MinGW官网,下载安装器。
- 运行安装器,选择
mingw32-gcc-g++和mingw32-base。 - 点击
Installation -> Apply Changes。 - 将
C:\MinGW\bin添加到系统环境变量Path中。
验证安装:打开命令行,输入 g++ --version。如果看到版本信息,就说明成功了。
1.4.2 配置VS Code
VS Code本身只是一个编辑器,需要安装插件才能编译C++。
- 安装VS Code。
- 安装C/C++插件(由Microsoft提供)。
- 安装Code Runner插件(方便一键运行)。
- 创建一个文件夹,比如
cpp_learning,用VS Code打开。 - 新建一个文件
hello.cpp。
如果你用CLion,那就更简单了:新建项目,选择C++ Executable,CLion会自动帮你配置好编译器。
1.5 编写第一个Hello World程序
好了,环境搭好了,我们来写第一行C++代码。
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
这段代码很简单:
#include <iostream>引入输入输出流库。int main()是程序的入口函数。std::cout是标准输出流,用来打印内容。std::endl是换行符。return 0;表示程序正常结束。
在VS Code里,按 Ctrl+Shift+B 编译,或者用Code Runner直接运行。你会看到终端输出:
Hello, World!
嗯,这一刻,你正式踏入了C++的世界。
1.6 本章知识体系
为了让你更直观地理解本章内容,我画了一张图。它展示了C++概述与环境搭建的核心逻辑:
这张图把本章内容串起来了。你看,从历史到特点,再到应用领域,最后落到环境搭建和第一个程序。每一步都是环环相扣的。
公众号:蓝海资料掘金营,微信deep3321