谁能解释这个代码段的指针用法;
b2Body* b = node;
GameActor* myActor = (GameActor*)b->GetUserData();
b2Body* b = node;
声明一个指针b
指向当前指向的任何node
。
GameActor* myActor = (GameActor*)b->GetUserData();
从b
中获取某种指针,并投射它以假装它指向类型为 GameActor
的对象。如果指针确实指向该类型,则myActor
可以访问该对象。否则,所有的地狱都快要崩溃了。
b2Body * b = node;
这将创建一个名为 b.b 的 b2Body 类型的指针,该指针指向对象节点指向的对象节点。
GameActor* myActor = (GameActor*)b->GetUserData();
这将创建一个名为 myActor 的 GameActor 类型的指针。 myActor 指向类 b2Body 的成员函数的结果,称为 GetUserData()。
您可以将第二行拆分为两行,以更清楚地了解正在发生的事情。
auto * data = b->GetUserData();
GameActor * myActor = (GameActor *)data;