任何人都可以解释这段代码的指针用法;
b2Body* b = node;
GameActor* myActor = (GameActor*)b->GetUserData();
答案 0 :(得分:2)
b2Body* b = node;
声明指针b
指向当前指向的node
。
GameActor* myActor = (GameActor*)b->GetUserData();
从b
中获取某种指针,然后将其转换为假装它指向GameActor
类型的对象。如果指针确实指向该类型,则myActor
可以访问该对象。否则,一切都将崩溃。
答案 1 :(得分:1)
b2Body * b = node;
这将创建一个名为b的b2Body类型的指针。 b指向对象节点指向。
GameActor* myActor = (GameActor*)b->GetUserData();
这将创建一个名为myActor的GameActor类型的指针。 myActor指向类b2Body的成员函数的结果,名为GetUserData()。
您可以将第二行拆分为两行,以便更清楚地了解发生了什么。
auto * data = b->GetUserData();
GameActor * myActor = (GameActor *)data;