C++ 四种强制类型转换
来源:互联网 发布:stc89c51数据手册 编辑:程序博客网 时间:2024/05/20 18:01
C++强制类型转换
From C++ Primer 中文版(第四版)158-160
显示转换(explicit conversion)也称强制类型转换,主要包括一下四种强制类型转换操作符:
static_cast dynamic_cat const_cast 以及 reinterpret_cast.
强制类型转换的一般格式 cast_name<type>(expression)
1. static_cast(常用)
编译器隐式执行的任何类型转换都可以由static_cast显示完成:
强制类型转换告诉程序的读者和编译器:我们并不关心潜在的精度损失。对于从一个较大的算术类型到一个
较小类型的赋值,编译器通常会产生警告。当我们显示提供强制类型转换时,警告信息就会被关闭。
ex. double d = 97.0;
char ch = static_cast<char>(d);
2.dynamic_cast
dynamic_cast支持运行时识别指针或引用所指向的对象。
3.const_cast(常用)
添加或者删除const特性。
ex. const char *pc_str;
char *pc = string_copy(const_cast<char *>(pc_str));
4.reinterpret_cast
reinterpret_cast通常为操作数的位模式提供较低层次的重新解释。
强制类型转换关闭或者挂起了正常的类型检查。强烈建议程序员避免使用强制类型转换,不依赖强制类型转换也能
写出很好的C++程序。
每次使用强制类型转换前,程序员应该仔细考虑是否还有其他不同的方法可以达到同一目的。如果非强制转换不可,
则应限制转换值的作用域,并且记录所有假定涉及的类型,这样能减少错误发生的机会。
From C++ Primer 中文版(第四版)158-160
显示转换(explicit conversion)也称强制类型转换,主要包括一下四种强制类型转换操作符:
static_cast dynamic_cat const_cast 以及 reinterpret_cast.
强制类型转换的一般格式 cast_name<type>(expression)
1. static_cast(常用)
编译器隐式执行的任何类型转换都可以由static_cast显示完成:
强制类型转换告诉程序的读者和编译器:我们并不关心潜在的精度损失。对于从一个较大的算术类型到一个
较小类型的赋值,编译器通常会产生警告。当我们显示提供强制类型转换时,警告信息就会被关闭。
ex. double d = 97.0;
char ch = static_cast<char>(d);
2.dynamic_cast
dynamic_cast支持运行时识别指针或引用所指向的对象。
3.const_cast(常用)
添加或者删除const特性。
ex. const char *pc_str;
char *pc = string_copy(const_cast<char *>(pc_str));
4.reinterpret_cast
reinterpret_cast通常为操作数的位模式提供较低层次的重新解释。
强制类型转换关闭或者挂起了正常的类型检查。强烈建议程序员避免使用强制类型转换,不依赖强制类型转换也能
写出很好的C++程序。
每次使用强制类型转换前,程序员应该仔细考虑是否还有其他不同的方法可以达到同一目的。如果非强制转换不可,
则应限制转换值的作用域,并且记录所有假定涉及的类型,这样能减少错误发生的机会。
- 【C++】 四种强制类型转换
- 四种强制类型转换
- 四种强制类型转换
- c++高级---C四种强制类型转换的总结
- C++四种强制类型转换
- C++中的四种强制类型转换
- C++的四种强制类型转换
- C++四种强制类型转换
- 四种强制类型转换的总结
- 四种强制类型转换的总结
- 四种c++强制类型转换
- 四种强制转换类型运算符
- C++四种强制类型转换
- C++ 四种强制类型转换
- C++中的四种强制类型转换
- C++四种强制类型转换
- C++四种强制类型转换
- c++中的四种强制类型转换
- 数据类型的思考
- PackageManager,PackageInfo,ApplicationInfo ,ResolveInfo 的用法
- DEFLATE 压缩算法
- 关于Oracle Companion 分享
- 关于AjaxPro的一些注意点
- C++ 四种强制类型转换
- C#日期时间格式化
- Oracle 用户管理
- RTSP协议2
- 自动进行团队构建和单元测试过程
- windows下cvs服务器安装配置
- ejb3+jboss+ant
- OpenGL中的Alpha测试,深度测试,模板测试,裁减测试
- 使用代理下载android系统源码和SDK