您好,登录后才能下订单哦!
C语言中经常可以见到一些强制类型转化,主要是在变量名前加(类型)。而在c++中与c语言也有一些差异,C++中主要有四种强制类型转化。
static_cast它的主要转化是对于相关类型之间的转化
int main()
{
float a = 1.2;
int b = static_cast<int>(a);
cout << b << endl;
getchar();
return 0;
}
2.reinterpret_cast它的主要转化是对于不相关类型之间的转化
int main()
{
int a = 1;
int *p = &a;
int b = reinterpret_cast<int>(p);
cout << b << endl;
getchar();
return 0;
}
3.const_cast 是解除const类型的变量,使之可以改变变量的值
int main()
{
volatile const int a = 1;
int *p = const_cast<int *>(&a);
*p = 2;
cout << a << endl;
getchar();
return 0;
}
4.dynamic_cast是动态转化,它主要作用:1.只能用于含有虚函数的类 2.先检查是否转化成功,若成功转化则转换,若不能就返回0
class A
{
public:
int _a;
virtual void show()
{}
};
class B :public A
{
public:
int _b;
};
void test()
{
A a;
B b;
B *pb =dynamic_cast<B *>(&a);
cout << pb << endl;
}
int main()
{
test();
getchar();
return 0;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。