楼层: 首页/ 软件技术/ 现代 C++/ 为什么学 C++,以及第一个程序
1

为什么学 C++,以及第一个程序

Why C++ · Setup · Hello World · std

如果你已经学过 C(上一页),那 C++ 对你来说不是从零开始,而是"给 C 装上一堆自动换挡的辅助驾驶"。C++ 把 malloc/free 包装成智能指针、把手写链表换成 STL 现成的 vector/map,让你在不牺牲性能的前提下少犯内存错误。

论C++ 和 C 到底什么关系

是超集:绝大多数 C 代码能直接当 C++ 编译跑。

但更安全:C++ 有 bool、引用、nullptr、自动类型推导、类、模板、异常,还有标准库 STL。

现代 C++(C++11 起)和老 C++(98/03)几乎是两门语言。本页全程讲现代写法,那种 new/delete 满天飞、裸指针乱飞的老式代码,了解即可,别学。

编译与运行

C++ 编译器不叫 gcc,叫 g++(或 clang++)。指定标准用 -std=c++20。

main.cpp —— 第一个 C++ 程序

#include <iostream> // C++ 的输入输出库 int main() { std::cout << "Hello, C++20!\n"; // cout 是"输出流",<< 是往里面塞东西 return 0; }

编译运行

$ g++ -Wall -std=c++20 main.cpp -o main $ ./main Hello, C++20!

命名空间 std 与 using namespace std

C++ 标准库的所有名字都住在 std 这个"房间"里,所以写 std::cout。你可以在文件开头 using namespace std; 图省事,从此只写 cout。

关于 using namespace std

小玩具、刷题程序里写着方便,没人怪你。但在头文件和大型工程里别这么干——它把整个 std 全倒进来,容易和你自己的名字撞车。工程上推荐"按需引入":using std::cout;,或者老老实实地写 std::。多打几个字母,换未来少 debug 几天,值。