Использование указателя класса

0

Может ли кто-нибудь объяснить использование указателя этой части кода;

b2Body* b = node;

GameActor* myActor = (GameActor*)b->GetUserData();

  • 0
    b или myActor ? Вам также может понадобиться показать, как определены b2Body и GameActor .
  • 0
    2 строка имеет разное использование, поэтому я хочу знать, как использовать
Показать ещё 3 комментария
Теги:

2 ответа

2
Лучший ответ
b2Body* b = node;

Объявите указатель b указывающий на то, на что указывает текущий node.

GameActor* myActor = (GameActor*)b->GetUserData();

Получите какой-то указатель из b и GameActor его, чтобы притвориться, что он указывает на объект типа GameActor. Если указатель действительно указывает на этот тип, myActor может получить доступ к этому объекту. В противном случае, весь ад вот-вот сломается.

  • 0
    Где вы взяли строку "node = node-> GetNext ();" из?
  • 0
    @gartenriese: От вопроса до его редактирования.
Показать ещё 2 комментария
1
b2Body * b = node;

Это создает указатель типа b2Body с именем b. b указывает на точки узла узла.

GameActor* myActor = (GameActor*)b->GetUserData();

Это создает указатель типа GameActor с именем myActor. myActor указывает на результат функции-члена класса b2Body, называемый GetUserData().

Вы можете разделить вторую строку на две строки, чтобы сделать более понятным, что происходит.

auto * data = b->GetUserData();
GameActor * myActor = (GameActor *)data;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню