如何访问父模块中定义的子模块中的方法

时间:2019-04-19 16:00:46

标签: c++ omnet++

在CompoundModule中时,我无法访问子模块的方法

在Switch模块中,我有一个名为printMACAddressTable()的函数;接口模块正在初始化时,我想访问此方法。 OMNET ++文档说这样做 omnetpp documentation

cModule *targetModule = getParentModule()->getSubmodule("foo");
Foo *target = check_and_cast<Foo *>(targetModule);
target->doSomething();

我的代码是

cModule *targetSwitch = getParentModule()->getSubmodule("networkSwitch");
Switch *switchModule = check_and_cast<Switch *>(targetSwitch);
switchModule->printMACAddressTable();

当我从另一个subModule评估subModule,但是尝试从compoundModule类访问subModule而不是给我错误时,此代码有效。

错误

error: unknown type name 'Switch'
    Switch *switchModule = check_and_cast<Switch *>(targetSwitch);
    ^
error: use of undeclared identifier 'Switch'
    Switch *switchModule = check_and_cast<Switch *>(targetSwitch);
                                          ^
error: expected expression
    Switch *switchModule = check_and_cast<Switch *>(targetSwitch);
                                                  ^

我不知道该怎么办。请帮我解决这个问题。

0 个答案:

没有答案