1、static_cast: 用来处理隐式转换,等同于C语言中的(NewType)Object 强转!
2、reinterpret_cast: 作用是说将指针str的值以二进制的方式解释为整型。
char* str= "hello";
int p = reinterpret<int>(str); // p=str的地址!!!
3、dynamic_cast:父类指针转换到子类指针!
class A{
void test(){};
};
class B:public A{
void test_B (){};
};
class C:public A{
void test_C (){};
};
A* obj = new B;
C* cc = dynamic_cast<B*>(obj); // cc = nullptr;
4、const_cast: 去掉对象的const属性,使对象可以修改
const_cast<type>(varible)中varible的type必须是指针,引用,或者指向对象类型成员的指针。
const int& a=3;
cosnt_cast<int&>(a) = 4;
本文介绍了C++中的四种基本类型转换:static_cast用于隐式转换,reinterpret_cast用于指针二进制解释,dynamic_cast进行基类到子类的动态类型检查,const_cast用于移除const属性。通过实例展示了这些转换在实际编程中的应用。
1万+

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



