温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

c++中一些强制类型转化

发布时间:2020-06-22 21:37:40 来源:网络 阅读:232 作者:走走停停吧 栏目:编程语言

C语言中经常可以见到一些强制类型转化,主要是在变量名前加(类型)。而在c++中与c语言也有一些差异,C++中主要有四种强制类型转化。

  1. 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;

}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI