描述:
static _cast是不是编译时进行类型转换?
dynamic _ cast是不是运行时进行类型转换?
reinterpret _ cast呢?是如何被实现的呢?
解决方案1:
分数少了点。今天心情好,还是便宜你了:(
dynamic_cast 是RUNTIME CAST,他要CHECK内存看能不能CAST,
reinterpret_cast是COMPILE CAST,不过比static _cast更懒一些,他可以说什么也没做,只是告诉编译器是个某一类型的POINTER。static _cast不CHECK 内存,不过它会计算POINTER OFFSET。也就是说,按严格程度来分的话,是:
reinterpret_cast《static _cast〈dynamic_cast
怎么用其实很简单
你查查MSDN就可以了,很详细
http://msdn.microsoft.com
一切的一切的数据在内存中是没有类型的
一切的一切的类型都是人为规定的,为了更符合人类的思维而规定的
一切的一切的规定都会带来新的问题,比如有了类型就会带来类型转换,内存中不会管你是什么类型,只要你的位数合法,甚至长了可以截短,短了可以加长。
“编译时”、“运行时”类型转换,谁造的词汇?
faint.
Q: static _cast是不是编译时进行类型转换?
A: 是
Q: dynamic _ cast是不是运行时进行类型转换?
A: 是
Q: reinterpret _ cast呢?是如何被实现的呢?
A: 这个应该是运行时起作用,用法和前面二者相同
形式:reinterpret_cast < type-id > ( expression )
例子:
PItf p;
IUnknown *pUnk;
pUnk->QueryInterface(__uuidof(p), reinterpret_cast<void**>(&p)));