C++入门经典 笔记 (第二十一章)使用C++0x新增的功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lishanlu136/article/details/48250481

空指针常量

在前面第十章有讲到,使用指针时一定要给它赋值,这很重要,因为未初始化的指针可能指向内存的任何位置,这称为野指针。为了避免这种危险,创建时应将空值(0或NULL)赋给指针。如:int *pBuffer = 0;   int *pBuffer = NULL;这两条语句等效。NULL是一个预处理器宏,会被转换为0(整型)或0L(长整型)。C++0x新增表示空指针的关键字nullptr,如:int  *pBuffer = nullptr;nullptr不会隐式地转换为整数,但可能隐式地转换为布尔值。当隐式转换为布尔值时,nullptr将被转换为false。

编译阶段常量表达式

C++0x新增的常量表达式,是使用关键字constexpr实现的:constexpr  int  getCentury()

                                                                                                          {

                                                                                                           return  100;

                                                                                                          }常量表达式的返回值不能为void,并且包含代码return  expression。返回的表达式只能包含字面值、对其他常量表达式的调用或被声明为constexpr的变量。如:定义一个constexpr变量:const  int  century = 100;

                                                                                                                            constexpr   year = 2011 + century;

自动确定类型的变量

C++0x新增了关键字auto,让编译器根据首次赋给变量的值来确定其类型。如:

auto  index = 3;

auto  gpa = 2.25F;

auto  rato = 500/3.0;

它也适用于函数的返回值,如:auto  score = calculateScore();变量score的数据类型将为函数的返回类型。

关键字auto用于定义类或结构的成员变量,除非它是静态成员。也可以用一个auto关键字定义多个变量,条件是这些变量的数据类型要相同。

但是它也有一些限制,不能使用auto来声明数组的类型,也不能将其作为函数参数或函数的返回值类型。

猜你喜欢

转载自blog.csdn.net/lishanlu136/article/details/48250481
今日推荐