C++拾遗--name_cast 显式类型转换
前言
C++中提供了四种显式的类型转换方法:static_cast,const_cast,reinterpret_cast,dynamic_cast.下面分别看下它们的使用场景。
显式类型转换
1.staitc_cast
这是最常用的,一般都能使用,除了不能转换掉底层const属性。...
分类:
编程语言 时间:
2015-02-18 22:07:23
阅读次数:
407
C++的类型转换有四种 const_cast, reinterpret_cast, static_cast, dynamic cast
这边举一个dynamic cast的小例子
#include
using namespace std;
class BaseClass{
public :
int m_iNum;
virtual void foo() {...
分类:
编程语言 时间:
2015-01-19 19:09:47
阅读次数:
127
C++类型转换
const_cast,去const属性。
static_cast,静态类型转换。如int转换成char。
dynamic_cast,动态类型转换。如子类和父类之间的多态类型转换。
reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。
const_cast:
const int& a = 9;
const_cast(a) = 10;
...
分类:
编程语言 时间:
2015-01-16 16:44:10
阅读次数:
170
RTTI
通过运行时类型识别(RTTI),程序能够使用基类的指针或引用来检索这些指针或引用所指对象的实际派生类型。通过下面两个操作符提供
RTTI:
1. typeid 操作符,返回指针或引用所指对象的实际类型。
2. dynamic_cast 操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。
这些操作符只为带有一个或多个虚函数的类返回动态类型信息,对于...
分类:
其他好文 时间:
2015-01-13 19:58:02
阅读次数:
242
我用的是cocos2dx2.2版本,textfield的settouchsize 只是一个样式,点击输入框的时候只有点击到文字才能进行输入,当文本长度很短视,体验感差的不行
直接说方法吧,废话也没人看、、
为要点击的区域增加 imageview
exchangeTextBg = dynamic_cast(ui->getWidgetByName("reward_exchange_bg_0"))...
分类:
其他好文 时间:
2015-01-08 11:24:07
阅读次数:
153
在C++中,存在类型转换,通常意味着存在缺陷(并非绝对)。所以,对于类型转换,有如下几个原则:(1)尽量避免类型转换,包括隐式的类型转换(2)如果需要类型转换,尽量使用显式的类型转换,在编译期间转换(3)避免使用reinterpret_cast和老式的强制类型转换操作符通常,隐式的类型转换会导致警告...
分类:
编程语言 时间:
2014-12-25 12:59:25
阅读次数:
219
static_cast,dynamic_cast, const_cast, reinterpret_castdynamic_cast比static_cast多了安全检测,判断源和目标有无继承被继承关系,所以强制将父类指针赋给子类指针的时候只能用static_cast。如class D:public ...
分类:
编程语言 时间:
2014-12-24 07:36:37
阅读次数:
145
运行时类型识别(run-time type identification,RTTI) 由两个运算符实现: 1.dynamic_cast 运算符 2.typeid运算符 dynamic_cast 的使用形式如下: a)dynamic_cast(e) b)dynamic_cast(e) c)...
分类:
其他好文 时间:
2014-12-15 23:14:10
阅读次数:
208
多继承的指针转化跟数据在内存的布局有极大的关系。目前,用msvc11和gcc4.8.3去测试指针转化之后的结果。发现只要不涉及编译增加虚表指针的情况下,派生类的地址多数是和继承列表的首个父类地址相同。当然会有其他问题影响到布局的指针转化。此次要提的内容是,别使用c_style指针转化。正确的指针转化来自于:dynamic_cast/static_cast。
编译器内部生成的指针对象有某个反射机制...
分类:
其他好文 时间:
2014-11-26 20:56:44
阅读次数:
210
const_cast,字面上理解就是去const属性。
static_cast,命名上理解是静态类型转换。如int转换成char。
dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。
reinterpret_cast,仅仅重新解释类型,但没有进行二进制的转换。
4种类型转换的格式,如:TYPE B = static_cast(TYPE)(a)。
cons...
分类:
编程语言 时间:
2014-11-26 16:35:32
阅读次数:
253