固定宽度的整数

式长

你记得2.4节的最大整数,整数型C + + 03的定义是“长”。长有一个,可以是32或64位平台的具体尺寸。C++定义了一个新的类型命名的长长的保证是至少64位长。因为“长”已经介绍了C99,许多编译器已经支持它的C + + 11之前。

奇怪的是,尽管C++ 11进口很久C99,他们选择不进口固定宽度的整数。

随着汽车和decltype类型推理

在C + + 11我最喜欢的变化是自动关键词引言。考虑你要遍历一个向量循环的使用在普通的使用情况:

1

为std::向量(< int >::const_iterator ITR = myvector cbegin();ITR!=myvector cend();+ + ITR)

具有确定的迭代器序列数据类型是“std::::矢量const_iterator”是一个痛苦的人正确的和令人厌恶的考虑,编译器已经知道从cbegin()返回类型是std::向量::const_iterator -但它使你了吗。

这是自动关键字哪里来:

1

对(汽车ITR = myvector cbegin();ITR!= myvector cend();+ + ITR)

自动关键词告诉编译器对其初始化的变量的类型推断。

1

2

3

4

汽车X = 5;// X将int类型

汽车Y=5.5;//Y将型双

自动Z = Y / Z;将型双

汽车W =“嗨”;//W将类型const char *

该decltype可以用来确定一个表达式的类型在编译型。

1

2

3

decltype(5)x;/ / x将int类型,因为5是int

decltype(x)y=6;//Y将int类型,因为X是一个int

自动Z = x;/ Z型int类型

虽然看起来像汽车和decltype总是推断类型相同,事实并非如此,如下面的示例:

1

2

3

const std::矢量< in> V(5)//声明一个向量V

汽车= V [ 0 ];//将int类型,因为V [ 0 ]是一个int

decltype(V [ 0 ])B = 1;// B将类型const int和,这是标准的返回类型::::> <整数向量算子[ ](size_type)const

一般来说,如果你需要一个变量,你要初始化式,使用自动。decltype更好当你需要的东西是不是一个变量的类型,像一个返回类型。

nullptr型

在C和C++以前的迭代,0作为常量整数作为空指针常量,这就是为什么下面的怪事发生:

1

2

int p = 1;//非法,不能将int int *变量

int * q = 0;//法律,0有着特殊的意义作为一个空指针

C + + 11定义了一个新的保留标识符被称为nullptr(类型nullptr_t)不是整数,不能转换为整数(但奇怪的是,它可以被转换为布尔值false)。0保持向后兼容的目的,一个有效的零点常数

枚举类型

(注:以下是尚未通过Visual Studio 2010的支持,但它足够简单跟随甚至没有尝试的例子自己)

在C + + 03,枚举类型安全的-他们不被视为整数,即使当枚举类型是不同的。考虑以下情况:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值