ポインターを値で渡す場合とアドレスで渡す場合の両方で、hello() が呼び出されるのはなぜですか?
class MyObj
{
public:
void hello()
{
printf("hello");
}
};
void myfunc(void *ptr)
{
// I want the device
MyObj* ptr2 = static_cast<MyObj*>(ptr);
ptr2->hello();
}
int main()
{
MyObj thisobj;
void *pointer_to_device = &thisobj;
myfunc(pointer_to_device);
myfunc(&pointer_to_device);
return 0;
}
&pointer_to_device は何をしているのですか? それは奇妙であり、許可されるべきではありません。関数はポインターへのポインターを要求していません
私はMSVC2012を使用しています