这篇博文其实和Cocos2dx 3.0关联性并不大,只是我近来对强制类型转换恶补了下,写在这里当笔记用吧...
抱着羞愧的心理,我决定本文尽量说的简单、严肃点...
以前用C时,习惯用(int)a这样的格式来强制转换类型。用cocos2dx,例如下面这种写法:
Sprite* sp = (Sprite*)this->getChildByTag(1);
但毕竟cocos2dx是用C++而不是用C,所以我们应入乡随俗,还是应该用C++本家的方式来写转换格式会比较好。(其实我以前都是用C的写法...)为了完成强制类型转换,C++中已经为我们提供了4中标准方法,它们是dynamic_cats, static_cast, const_cast, reinterpret_cast,用法形式如:dynamic_cast<类型说明符>(表达式),之所以分成4类,就表示他们各自有着不同的使用环境。
我觉的 通常情况下用dynamic_cast最好,它检查的更严格些,其次是static_cast,而后两者也就是const_cast和reinterpret_cast较之前两者貌似不太常用(我会告诉你我根本就没用过吗...),而且也不推荐使用,const_cast在用于去除const的地方还是有所发挥的,reinterpret_cast在转换时,不会在内存中进行补足比特位(例如int转换到double,需要补足4字节),这往往是不安全的,而且代码也是不可移植的。
所以我主要介绍的还是static_cast和dynamic_cast。
1、static_cast
static_cast类似C风格的强制类型转换。它

这篇博客探讨了C++中与Cocos2dx相关的强制类型转换,主要讲解了`static_cast`和`dynamic_cast`的使用。`static_cast`适用于基类和子类间的转换,而`dynamic_cast`则在转换时进行类型检查,确保安全性。文章以Cocos2dx为例,阐述了这两种转换在实际编程中的应用及其区别。
 闲扯强制类型转换&spm=1001.2101.3001.5002&articleId=21990081&d=1&t=3&u=c884caa8454342a4a794a8574feac665)

被折叠的 条评论
为什么被折叠?



