本文来聊聊现代C++的一些语法糖。
1.Auto
auto x = 10; // 推导为 int
auto y = 3.14; // 推导为 double
2.范围-based for 循环
std::vector<int> v = {1, 2, 3, 4, 5};
for (auto val : v) {
std::cout << val << " ";
}
3.nullptr
int* ptr = nullptr; // 更安全
4.override 和 final
class Base {
virtual void foo() { }
};
class Derived : public Base {
void foo() override { } // 确保重写
void bar() final { } // 不能再被重写
};
5.C++11引入了Lambda函数,可以在函数内部直接定义匿名函数。
auto add = [](int a, int b) { return a + b; };
std::cout << add(3, 4); // 输出 7
6.decltype
int x = 5;
decltype(x) y = 10; // y的类型为int
7.右值引用与移动语义
void foo(std::vector<int>&& v) {
std::vector<int> v2 = std::move(v); // 移动v的资源
}
8.范围for循环与std::initializer_list
for (auto&& elem : {1, 2, 3}) {
std::cout << elem << " ";
}