reinterpret_cast和null成员变量

时间:2012-08-20 09:05:45

标签: c++ reinterpret-cast static-cast

我正在使用reinterpret_cast这样的东西:

void RunThread (void *myself)
{
   (reinterpret_cast<MyClass*>(myself))->Method();
}

Inside Method中,我的大多数成员变量(所有句柄)都为null。这可能是因为reinterpret_cast,因为我知道它不能保证我的地址相同吗?就像static_cast一样。我知道在这个例子中我们应该使用static_case,但是这个问题让我感兴趣了。

1 个答案:

答案 0 :(得分:3)

没有。 reinterpret_cast不对源指针执行任何操作,只将其值视为另一个指针(或整数)类型。仅当myself指向的内存不包含MyClass(或二进制兼容)对象时,它才会给出错误的结果。