alignof
获取类型或变量的当前对齐方式
cout <<"alignof xx = "<< alignof(char)<< endl;
alignas
注意只能往大了对齐,比如int类型不能按2字节对齐
alignas(16) int a;//以16字节对齐int类型
typeid
获取当前变量的类型
signed char c;
cout << "typeid is "<<typeid(c).name()<<endl;//结果 typeid is a
nullptr
简单来说是代替C中的NULL的作用,因为在C++中使用NULL有歧义。
auto
auto在C在修饰局部变量,可以忽略,在C++中是一个新的关键字
其作用是由编译器自动推导出变量类型
auto i = 8;
cout <<"typeid of i is "<<typeid(i).name()<<endl;
结果是:
typeid of i is i
decltype
int a = 9;
decltype(a) b ;//b的类型为int
作用和auto类似,区别是:
- auto忽略顶层const,而decltype则保留const
- 对引用操作,auto推导出原有类型,decltype推导出引用
- auto推倒时会执行,decltype不会执行,只做分析

本文介绍了C++相对于C语言新增的关键字,如alignof用于获取类型或变量的对齐方式,alignas指定对齐方式,typeid获取变量类型信息,nullptr作为NULL的替代,auto和decltype实现类型自动推导,virtual、override和final用于多态,friend创建友元函数,explicit防止隐式类型转换,const在不同场景的应用,以及mutable和constexpr的特殊用途。
最低0.47元/天 解锁文章
14万+

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



