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); // 调用