C++ 强制类型转换

1,dynamic_cast;

2,const_cast;

3,static_cast;

4,reinterpret_cast

1.static_cast


static_cast用来进用行比较“自然”和低风险的转换,比
如整型和实数型、字符型之间互相转换

static_cast不能来在不同类型的指针之间互相转换,也不
能用于整型和指针之间的互相转换,也不能用于不同类型的
引用之间的转换。

2,reinterpret_cast

reinterpret_cast用来进行各种不同类型的指针之间的转换、不同
类型的引用之间转换、以及指针和能容纳得下指针的整数类型之间
的转换。转换的时候,执行的是逐个比特的拷贝。

例如:可以将指针类型转换为足以存储指针表示的整型,但不能将指针转换为更小的整型或浮点型。

扫描二维码关注公众号,回复: 2784845 查看本文章

另一个限制是,不能将函数指针转换为数据指针,反之亦然。

3,const_cast

用来进行去除const属性的转换。将const引用转换成同类型的非
const引用,将const指针转换为同类型的非const指针时用它。例如:

4,dynamic_cast

dynamic_cast专门用于将多态基类的指针或引用,强
制转换为派生类的指针或引用,而且能够检查转换的
安全性。对于不安全的指针转换,转换结果返回NULL指针。

dynamic_cast不能用于将非多态基类的指针或引用,
强制转换为派生类的指针或引用。

猜你喜欢

转载自blog.csdn.net/qq_42128241/article/details/81673026