1. 为什么现代C++值得深入学习?
2003年发布的C++03标准之后,C++语言进入了快速发展期。2011年发布的C++11标准标志着现代C++时代的开始,随后每三年发布一次新标准(C++14、C++17、C++20)。这些更新不仅仅是语法糖的堆砌,而是从根本上改变了我们编写C++代码的方式。
提示:现代C++特性并非只是锦上添花,而是能显著提升代码质量、开发效率和运行性能的关键工具。
以智能指针为例,传统C++中内存管理是个老大难问题:
cpp复制// 传统C++代码
void riskyFunction() {
MyClass* obj = new MyClass();
if(somethingWrong) {
throw std::exception(); // 内存泄漏!
}
delete obj;
}
现代C++的解决方案优雅得多:
cpp复制// 现代C++代码
void safeFunction() {
auto obj = std::make_unique<MyClass>();
if(somethingWrong) {
throw std::exception(); // 自动释放内存
}
}
2. C++11:现代C++的奠基之作
2.1 自动类型推导与初始化
auto关键字彻底改变了变量声明方式:
cpp复制auto i = 42; // int
auto d = 3.14; // double
auto s = "hello"; // const char*
auto vec = {1, 2, 3}; // std::initializer_list<int>
统一初始化语法让代码更一致:
cpp复制struct Point {
int x, y;
};
// 传统初始化方式
Point p1 = {1, 2};
Point p2(1, 2);
// C++11统一初始化
Point p3{1, 2};
std::vector<int> v{1, 2, 3};
2.2 智能指针革命
C++11引
