Метод доступа Omnet для другой ошибки субмодуля — нет функции соответствия для вызова «check_and_cast (cModule * & amp;)»

Ошибка: нет соответствующей функции для вызова ‘check_and_cast (cModule *&)»

Я пытаюсь использовать текущую позицию из другого модуля «мобильность» с n класса типа MassMobility.

cModule* parentmod = getParentModule();

cModule* mobilitymod = parentmod->getParentModule()->getSubmodule("mobility");
EV<<"Current module is "<<mobilitymod->getFullName() <<endl;

MassMobility* mobility = check_and_cast<MassMobility *>(mobilitymod);
mobility->getCurrentPosition();

Я получаю ошибку времени компиляции: — no matching function for call to ‘check_and_cast(cModule*&)’, Но все же я могу получить функции из объекта мобильности, как показано в последней строке. Кто-нибудь может подсказать, пожалуйста, как я могу это исправить.

0

Решение

Ну, я выясняю проблему. Первым делом мне нужно было добавить заголовочный файл модуля мобильности в мой текущий субмодуль, чтобы получить определения. Так что я включил

#include "MassMobility.h"#include "StationaryMobility.h"

Затем в коде я сделал следующую модификацию:

cModule* parentmod = getParentModule();
cModule* mobilitymod = parentmod->getParentModule()->getSubmodule("mobility");
MassMobility* massMobilityMod = dynamic_cast<MassMobility*>(mobilitymod);
EV<<"Current position is <<"massMobilityMod->getCurrentPosition();

Таким образом, причиной ошибок является отсутствие определений, которое обеспечивается заголовочными файлами в этом решении.

1

Другие решения


По вопросам рекламы [email protected]