在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);
^
我不知道该怎么办。请帮我解决这个问题。