- 浏览: 370118 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
http://www.cnblogs.com/yawer/archive/2007/11/27/973909.html
dynamic_cast—多态类型的转化
表达式:dynamic_cast(expression)把操作数expression转化为一个type-id对象。type-id必须是一个指针或者是一个引用。如果type-id是一个指针,那么expression必须是一个指针。如果type-id是一个引用,那么expression是一个左值表达式。
static_cast非多态类型转化
static_cast操作符将expression转化为type-id类型。没有运行时检查来确保这项转化是安全的转化。
static_cast操作符可以用来将基类的指针转化为派生类的指针,这样的转化都不总是安全的。
一般的,可以使用static_cast来将数字数据类型(enums)转化为ints,或者将ints转化为floats.你能够确保数据类型包含在转化之中。static_cast没有dynamic_cast安全。因为static_cast没有运行时检查。当遇到有歧义的指针时,dynamic_cast会失败,而static_cast将返回,好像没有任何错误一样。这是非常危险的。虽然dynamic_cast是安全的,但是它仅适用于指针和引用,并且运行时检查是一个负担。
const_cast
cosnt_cast用来移除const,volatile和_unaligned属性。
const_cast操作符能够用来移除类中的const,volatile和_unaligned属性。
一个任何对象类型的指针或者一个数据成员的指针能够显示的转化为相同的类型,除了const,volatile和_unaligned标识符。对于指针和引用,结果将引用原始的对象。对于数据成员指针,结果将指向原始数据指针所指向的数据成员。依靠引用对象的雷ixng,一个结果指针(引用、数据成员)的写操作将产生undefined行为。
reinterpret_cast
用来简单的重新解释bits.
reinterpret_cast操作符允许任何指针转化为任何其他的指针类型。它允许任何整型类型转化为任何指针类型,反方向也一样。误用reinterpret_cast操作符是不安全的。除非需要的转化是固有的低级别的。
reinterpret_cast操作符用来将char * 转化为int *或者One_class*转化为Unrelated_class*,这样是内在的不安全的。
reinterpret_cast的结果不能够安全的使用除了转化为它的原始类型。其它的使用都是不可移植的。
reinterpret_cast操作符不能够去除const,volatile或者__unaligned属性,可以用const_cast来去除。
reinterpret_cast操作符将null指针转化为null指针。
dynamic_cast—多态类型的转化
表达式:dynamic_cast(expression)把操作数expression转化为一个type-id对象。type-id必须是一个指针或者是一个引用。如果type-id是一个指针,那么expression必须是一个指针。如果type-id是一个引用,那么expression是一个左值表达式。
static_cast非多态类型转化
static_cast操作符将expression转化为type-id类型。没有运行时检查来确保这项转化是安全的转化。
static_cast操作符可以用来将基类的指针转化为派生类的指针,这样的转化都不总是安全的。
一般的,可以使用static_cast来将数字数据类型(enums)转化为ints,或者将ints转化为floats.你能够确保数据类型包含在转化之中。static_cast没有dynamic_cast安全。因为static_cast没有运行时检查。当遇到有歧义的指针时,dynamic_cast会失败,而static_cast将返回,好像没有任何错误一样。这是非常危险的。虽然dynamic_cast是安全的,但是它仅适用于指针和引用,并且运行时检查是一个负担。
const_cast
cosnt_cast用来移除const,volatile和_unaligned属性。
const_cast操作符能够用来移除类中的const,volatile和_unaligned属性。
一个任何对象类型的指针或者一个数据成员的指针能够显示的转化为相同的类型,除了const,volatile和_unaligned标识符。对于指针和引用,结果将引用原始的对象。对于数据成员指针,结果将指向原始数据指针所指向的数据成员。依靠引用对象的雷ixng,一个结果指针(引用、数据成员)的写操作将产生undefined行为。
reinterpret_cast
用来简单的重新解释bits.
reinterpret_cast操作符允许任何指针转化为任何其他的指针类型。它允许任何整型类型转化为任何指针类型,反方向也一样。误用reinterpret_cast操作符是不安全的。除非需要的转化是固有的低级别的。
reinterpret_cast操作符用来将char * 转化为int *或者One_class*转化为Unrelated_class*,这样是内在的不安全的。
reinterpret_cast的结果不能够安全的使用除了转化为它的原始类型。其它的使用都是不可移植的。
reinterpret_cast操作符不能够去除const,volatile或者__unaligned属性,可以用const_cast来去除。
reinterpret_cast操作符将null指针转化为null指针。
- CppCastTesting.zip (6.4 KB)
- 下载次数: 0
发表评论
-
FreeRTOS
2022-03-05 16:31 248Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 411https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1330https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 477https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 574// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 582https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5738583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 600参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2155基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9061 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1582OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1881ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 871转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1908转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1086C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 969转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 991转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 810参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1612转自 http://blog.csdn.net/weixinh ...
相关推荐
Google建议使用C++11中的强类型转换,如`static_cast`、`dynamic_cast`等,以提高类型安全性和代码可读性。 - **流 (Streams):** 流用于输入/输出操作,提供了一种方便的方式来读写数据。Google建议使用标准库中的...
Friends Exceptions Run-Time Type Information (RTTI) Casting Streams Preincrement and Predecrement Use of const Integer Types 64-bit Portability Preprocessor Macros 0 and NULL sizeof Boost C++0x ...
C++提供了多种类型的转换,包括C-style cast、static_cast、const_cast、dynamic_cast和reinterpret_cast。应当根据具体需求选择合适的转换类型。 **9. 流(Streams)** 流是用于输入输出的强大工具。使用流进行I/...
- **Casting**:转换类型时应选择正确的类型转换运算符,例如`static_cast`、`dynamic_cast`等。 - **Streams**:使用标准库中的流对象(如`std::cout`和`std::cin`)来进行输入输出操作。 - **Preincrement and ...
12. **类型转换与造型キャスト**:C++中,从`void*`到其他类型的转换通常需要造型(casting),如`(Type*)pointer`或`static_cast*>(pointer)`。 13. **const的使用**:`const`关键字用于表示不可修改的变量,可...
19. **Casting**:优先使用C++的静态类型转换(`static_cast`、`dynamic_cast`、`reinterpret_cast`和`const_cast`),避免使用C-style的旧式类型转换。 20. **Streams**:使用`iostream`库进行输入/输出操作,如`...
- **Casting**:C++中的各种类型转换方式(static_cast、dynamic_cast、const_cast、reinterpret_cast)应根据具体情况进行选择。 - **Streams**:流操作符(、>>)用于输入输出操作,提供了更高级别的抽象。 - *...
- **Casting:** Prefer static_cast, dynamic_cast, const_cast, and reinterpret_cast over C-style casts. - **Streams:** Use streams for I/O operations. Prefer formatted I/O over unformatted I/O. - **Pre-...
C++提供了多种类型转换方式,包括隐式转换和显式转换,如静态类型转换(static_cast)、动态类型转换(dynamic_cast)、强制类型转换(C-style cast)和 reinterpret_cast。`casting_spells.pdf`很可能深入讨论了...
independent acpica.lib produced by the Microsoft Visual C++ 6.0 32- bit compiler. The debug version of the code includes the debug output trace mechanism and has a much larger code and data size. ...
4. **类型转换(type casting)**:包括隐式和显式转换,如`(int)var`(强制转换)和`static_cast(var)`(静态类型转换)。 5. **智能指针(smart pointers)**:如`std::unique_ptr`和`std::shared_ptr`,用于管理...
3. 将一种类型转换为另一种类型称为类型转换或“casting”。 4. 表达式 `(pow(2, sqrt(9.0) + ceil(0.99)))` 的值是 `16`,因为 `sqrt(9.0)` 结果是 `3.0`,`ceil(0.99)` 是 `1.0`,所以表达式变为 `pow(2, 4)`,即...