我正在使用reinterpret_cast这样的东西:
void RunThread (void *myself)
{
(reinterpret_cast<MyClass*>(myself))->Method();
}
Inside Method中,我的大多数成员变量(所有句柄)都为null。这可能是因为reinterpret_cast,因为我知道它不能保证我的地址相同吗?就像static_cast一样。我知道在这个例子中我们应该使用static_case,但是这个问题让我感兴趣了。
答案 0 :(得分:3)
没有。 reinterpret_cast
不对源指针执行任何操作,只将其值视为另一个指针(或整数)类型。仅当myself
指向的内存不包含MyClass
(或二进制兼容)对象时,它才会给出错误的结果。