C++11 引入了许多新特性,这些特性在 C++ 语言的发展历程中具有里程碑意义。本文将介绍一些最重要的 C++11 特性,并对其作用进行详细描述和示例演示。
- auto 关键字
auto 关键字是 C++11 中新增的关键字,其作用是用于自动类型推导。使用 auto 关键字定义变量时,编译器会根据初始化表达式的类型自动推导出变量的类型。例如:
auto a = 42; // 推导为 int 类型
auto b = 3.14; // 推导为 double 类型
auto c = "hello world"; // 推导为 const char* 类型
auto 关键字的使用使代码更加简洁,避免了冗长的类型声明。
- nullptr 关键字
在 C++11 之前,通常使用 NULL 宏来表示一个空指针。但是,NULL 宏实际上是一个整数类型,因此在某些情况下可能会导致类型不匹配或二义性。在 C++11 中,引入了 nullptr 关键字来表示空指针,nullptr 是一个特殊的关键字,可以被隐式转换成任何类型的空指针。例如:
void foo(char* ptr);
void foo(int i);
foo(nullptr); // 调用 void foo(char* ptr);
- Range-based for 循环
Range-based for 循环是 C++11 中一个非常实用的特性,它能够遍历容器中的每个元素。例如:
本文介绍了C++11的关键特性,包括auto关键字实现类型自动推导,nullptr解决空指针表示问题,Range-based for循环简化容器遍历,Lambda表达式方便匿名函数定义,constexpr声明编译时常量,以及Variadic Templates支持可变参数模板,这些特性提高了C++的简洁性和效率。
订阅专栏 解锁全文
15万+

被折叠的 条评论
为什么被折叠?



