另一个子模块错误的Omnet访问方法 - 没有用于调用'check_and_cast(cModule *&)'的匹配函数

时间:2015-05-13 21:12:07

标签: c++ omnet++ inet

错误:没有匹配函数来调用'check_and_cast(cModule *&)'

我正在尝试使用另一个模块“mobility”的当前位置和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*&)’。但是我仍然可以从移动对象中获取函数,如最后一行所示。任何人都可以建议我如何纠正它。

1 个答案:

答案 0 :(得分:1)

好吧我弄清楚了问题。首先,我需要在当前子模块中添加移动模块的头文件以获取定义。所以我包括 -

9010

然后在代码中我做了以下修改: -

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

因此,错误的原因是缺少定义,这是由此解决方案中的头文件提供的。