我有一个包含简单模块的复合模块(R =接收器_1 +接收器_2),我的网络包含2个模块(R + R1),这两个模块都是相同的(类R),我想访问两个模块使用C ++,我尝试使用:



cModule *test = getModuleByPath("Network.R");
cSimpleModule *test1 = test->getSubmodule("receiver_2", 6);





但是自然地,我有一个错误告诉我,第二行“从'cModule *'到'cSimpleModule *'的无效转换”。那么如何访问cModule的cSimpleModule?请帮我。

最佳答案

方法getSubmodule()返回指向cModule对象的指针,因此您应使用cSimpleModule将结果转换为指向check_and_cast的指针:

cModule *test = getModuleByPath("Network.R");
cSimpleModule *test1 = check_and_cast<cSimpleModule *> (test->getSubmodule("receiver_2"));


此外,getSubmodule()中的第二个参数仅在复合模块包含子模块的向量时使用。根据您的描述,没有向量,因此我建议省略该论点。

关于c++ - 如何使用C++从OMNet++中的cModule获取cSimpleModule?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42331970/

10-13 05:36