Приведение к абстрактному классу - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь понять, почему я получаю эту ошибку.

A cast to abstract class "PhysicsEngine::MySimuulationEventCallback" is not allowed: 
pure virtual function "PhysX::PxSimulationEventCallback::onAdvance" have no overrider.

Я читал это, но изо всех сил пытался понять это в моих обстоятельствах: ПРИЧИНА ЭТОГО ПОВЕДЕНИЯ: - Когда вы повторно определяете функцию в производный класс с теми же параметрами, что и в базовом классе, тогда это называется переопределением. Если вы переопределите эту функцию с другим параметром, это будет попыткой использовать перегрузку с вашей стороны. Но перегрузка возможна только в рамках класса. Итак, в этом случае соответствующая функция базового класса будет скрыта.

Мой код

class MySimulationEventCallback : public PxSimulationEventCallback
    {
    public:
        bool onTouch = false;
        bool resetTrigger = false;
        bool scoreTrigger = false;
        bool additionalScoreAllowed = false;
        bool hexagonScore = false;
        bool capsuleScore = false;

        unsigned int hexScore = 0;

затем привязан к моей переменной здесь

///Initialise and set the customised event callback
            my_callback = MySimulationEventCallback();
            px_scene->setSimulationEventCallback(my_callback);

Он определен MySimulationEventCallback* my_callback;

...