c++特殊关键字整理

1.asm
asm允许你在你的代码中直接插入汇编语言指令, 各种不同的编译器为这一个指令允许不一致形式, 比如:
   asm { instruction-sequence }
or
   asm( instruction );
2.auto
用来声明自动变量。它是存储类型标识符,表明变量(自动)具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型
int i=10; auto a = i; //这样a也是int类型了

=========强制类型转换运算符:C++有四种强制类型转换符=========
3. const_cast 
该操作符用于改变const和volatile,const_cast最常用的用途就是删除const属性,
如果某个变量在大多数时候是常量,而在某个时候又是需要修改的,这时就可以使用const_cast操作符了。
const_cast操作符不能改变类型的其他方面,他只能改变const或volatile,即const_cast不能把int改变为double,但可以把const int改变为int。
const_cast只能用于指针或引用。
4. dynamic_cast 
dynamic_cast转换符只能用于指针或者引用。
dynamic_cast转换符只能用于含有虚函数的类。
dynamic_cast转换操作符在执行类型转换时首先将检查能否成功转换,如果能成功转换则转换之,如果转换失败,如果是指针则反回一个0值,
如果是转换的是引用,则抛出一个bad_cast异常
5. reinterpret_cast 
该操作符用于将一种类型转换为另一种不同的类型,比如可以把一个整型转换为一个指针,或把一个指针转换为一个整型,
因此使用该操作符的危险性较高,一般不应使用该操作符。
6. static_cast 
该操作符用于非多态类型的转换,任何标准转换都可以使用他,即static_cast可以把int转换为double,
但不能把两个不相关的类对象进行转换,比如类A不能转换为一个不相关的类B类型。
static_cast本质上是传统c语言强制转换的替代品。


7. explicit 
explicit用来防止由构造函数定义的隐式转换
8. const
关键字const用来告诉编译器一个一旦被初始化过的变量就不能再修改。
9. mutable 
  关键字mutable 忽略所有const 函数.一个属于const对象的mutable 成员可以被修改.
10. volatile
一个定义为volatile的变量是说这变量可能会被意想不到地改变,volatile是从内存中而不是寄存器中读取值的
11. extern 
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
此外extern也可用来进行链接指定。
12. friend 
友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。
13. register 
register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度
14. typeid 
类似sizeof用法,typeid操作符的返回结果是名为type_info的标准库类型的对象的引用
例如 int a;typeid(a).name()  --->int
15. wchar_t 
双字符类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值