0

我正在使用这样的 reinterpret_cast :

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

在方法内部,我的大多数成员变量(所有句柄)都是空的。这可能是因为 reinterpret_cast 因为我知道它不能保证我使用相同的地址吗?就像 static_cast 一样。我知道我们应该在这种情况下使用 static_case,但是这个问题现在让我感兴趣了。

4

1 回答 1

3

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

于 2012-08-20T10:20:54.107 回答