这篇文章主要介绍c++中如何使用static_cast转换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
站在用户的角度思考问题,与客户深入沟通,找到马村网站设计与马村网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、雅安服务器托管、企业邮箱。业务覆盖马村地区。static_cast是一个强制类型转换操作符。强制类型转换,也称为显式转换,C++中强制类型转换操作符有static_cast、dynamic_cast、const_cast、reinterpert_cast四个。本节介绍static_cast操作符。
static_cast的转换
•编译器隐式执行的任何类型转换都可以由static_cast来完成,比如int与float、double与char、enum与int之间的转换等。
doublea=1.999;
intb=static_cast
当编译器隐式执行类型转换时,大多数的编译器都会给出一个警告:
e:\vs2010projects\static_cast\static_cast\static_cast.cpp(11):warningC4244:“初始化”:从“double”转换到“int”,可能丢失数据
使用static_cast可以明确告诉编译器,这种损失精度的转换是在知情的情况下进行的,也可以让阅读程序的其他程序员明确你转换的目的而不是由于疏忽。
把精度大的类型转换为精度小的类型,static_cast使用位截断进行处理。
•使用static_cast可以找回存放在void*指针中的值。
doublea=1.999;
void*vptr=&a;
double*dptr=static_cast
cout<<*dptr< static_cast用来做什么 static_cast也可以用在于基类与派生类指针或引用类型之间的转换。然而它不做运行时的检查,不如dynamic_cast安全。static_cast仅仅是依靠类型转换语句中提供的信息来进行转换,而dynamic_cast则会遍历整个类继承体系进行类型检查,因此dynamic_cast在执行效率上比static_cast要差一些。现在我们有父类与其派生类如下: classANIMAL { public: ANIMAL():_type("ANIMAL"){}; virtualvoidOutPutname(){cout<<"ANIMAL";}; private: string_type; 以上是“c++中如何使用static_cast转换”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
新闻名称:c++中如何使用static_cast转换-创新互联
文章链接:http://cdxtjz.cn/article/dpjhdc.html