我有这段代码,我从两个流程块(Hey.cc和See.cc)的句柄消息中获取消息,并将其组合为新消息(在There.cc中),但似乎无法正常工作帮助
嘿.cc
#include "Hey.h"
Define_Module(Hey);
void Hey::initialize()
{
// TODO - Generated method body
cMessage *mmsg = new cMessage("hello");
send(mmsg,"hello");
}
void Hey::handleMessage(cMessage *msg)
{
// TODO - Generated method body
}
和See.cc
#include "See.h"
Define_Module(See);
void See::initialize()
{
// TODO - Generated method body
cMessage *smsg = new cMessage("hi");
send(smsg,"tempexit");
}
void See::handleMessage(cMessage *msg)
{
// TODO - Generated method body
}
和There.cc
#include "There.h"
#include "See.h"
#include "Hey.h"
#include <string>
Define_Module(There);
void There::initialize()
{
// TODO - Generated method body
}
void There::handleMessage(cMessage *msg)
{
cMessage *smsg = new cMessage("hi"); // supposed to be from See.cc
cMessage *mmsg = new cMessage("hello"); // supposed to be from Hey.cc
cMessage strNew = *smsg;
cMessage sstrNew = *mmsg;
cMessage rNew = strNew + sstrNew ;
EV << rNew ;
}
答案 0 :(得分:0)
send
方法的第二个参数应为the name of gate或指向cGate
对象的指针。 Hey.ned
是否包含hello
输出门,并且See.ned
是否包含tempexit
门?
类cMessage
没有operator+
,因此一个不能添加两个cMessage
的实例。顺便说一句:您期望此操作带来什么?如果是封装消息,则应使用encapsulate()。